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

SQLでセルの繰り返し単語を見つける方法

    ハードコーディングする場合:

    select EntityID, Situation
    from Entity
    where Situation like '%the the%'
    or Situation like '%of of%'
    or Situation like '%is is%'
    

    更新: 少しハードコーディングされていないアプローチは次のとおりです。

    select EntityID, Situation, right(s2, diff * 2 + 1) as RepeatedWords
    from (
        select EntityID, Situation, WordNumber,
            substring_index(Situation, ' ', WordNumber) s1,
            substring_index(Situation, ' ', WordNumber + 1) s2,
            length(substring_index(Situation, ' ', WordNumber + 1)) - length(substring_index(Situation, ' ', WordNumber)) -1 diff
        from `Entity` e
        inner join (
            select 1 as WordNumber
            union all
            select 2 
            union all
            select 3 
            union all
            select 4 
            union all
            select 5 
            union all
            select 6 
            union all
            select 7 
            union all
            select 8 
            union all
            select 9 
            union all
            select 10 
        ) n
    ) a
    where right(s1, diff) = right(s2, diff)
        and diff > 0
    order by EntityID, WordNumber
    

    最初の10語程度まで検索し、大文字と小文字、句読点、または複数のスペースを適切に処理しませんが、実行できるアプローチのアイデアを提供するはずです。より長い文字列を処理する場合は、UNIONALLステートメントに追加し続けてください。



    1. 優れたデータベースが必要な5つの理由

    2. Gmailの検索はどのように高速ですか?

    3. すべての列を連結するMySQL

    4. 距離を計算するためのクエリがPostgresDBをスタックしました