Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL - Finden von Wörtern, die das gesuchte Schlüsselwort umgeben

Ich hatte ein Spiel und kann Ihnen eine halbe Lösung in reinem MySQL geben.

Sie können die Zeichenfolge auf beiden Seiten des Wortes erhalten, nachdem Sie dies verwendet haben. Ich weiß nur nicht, wie ich das Wort anstelle der gesamten Teilzeichenfolge erhalten soll. Hoffentlich ist es hilfreich.

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;