sql >> Database teknologi >  >> RDS >> Mysql

MySQL - at finde ord, der omgiver det søgte søgeord

Jeg har haft en leg, og jeg kan give dig en halv løsning i ren mysql.

Du kan få strengen på hver side af det ord, du er efter at have brugt dette. Ved bare ikke, hvordan man får ordet i stedet for hele understrengen. Forhåbentlig er det nyttigt.

select case when (select w.t regexp concat('[[:<:]]', w.v)) = 1 
    then substr(w.t, 1, locate(w.v, w.t)-1) else null end as 'left_word',
       w.v as word,
       case when (select w.t regexp concat(w.v, '[[:>:]]')) = 1 
    then substr(w.t, locate(w.v, w.t)+length(w.v)) else null end as 'right_word'
    from (
        select "Lorem ipsum dolor sit amet consectetur adipiscing elit." as t, "amet" as v
    ) as w;

select case when (select w.t regexp concat('[[:<:]]', w.v)) = 1 
    then substr(w.t, 1, locate(w.v, w.t)-1) else null end as 'left_word',
       w.v as word,
       case when (select w.t regexp concat(w.v, '[[:>:]]')) = 1 
    then substr(w.t, locate(w.v, w.t)+length(w.v)) else null end as 'right_word'
    from (
        select "Lorem ipsum dolor sit amet consectetur adipiscing elit." as t, "elit." as v
    ) as w;



  1. Sådan skriver du en CASE-sætning i SQL

  2. Hvordan ved jeg, hvor mange rækker en Perl DBI-forespørgsel returnerer?

  3. generere dage fra datointerval

  4. Få localhost til at køre på mac OS X Yosemite