sql >> データベース >  >> RDS >> Mysql

MySQL-検索されたキーワードを囲む単語を検索する

    私は遊んだことがあり、純粋なmysqlで半分の解決策を提供できます。

    これを使用すると、使用している単語の両側に文字列を取得できます。部分文字列全体ではなく、単語を取得する方法がわからないだけです。お役に立てば幸いです。

    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. SQLServer2005にクラスター化インデックスがない理由

    2. 1つの列にnull以外の値を持つ最新のレコードを選択します

    3. SQL-IF EXISTS UPDATEELSEINSERT構文エラー

    4. SQLite JSON_ARRAY_LENGTH()