• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:あいまい検索について)

SQLでテーブルの文字列列を検索する方法

このQ&Aのポイント
  • SQLを使ってテーブルの文字列列を効率的に検索する方法が知りたいです。特定の文字列を含む行を優先的に取得したいです。
  • テーブルの文字列列を効率的に検索するためのSQLの方法が分かりません。特定の文字列を含む行を優先的に取得したいです。
  • SQLでテーブルの文字列列を検索する際、特定の文字列を含む行を優先して取得したいです。どのようなSQLを書けば良いでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

同じ文字列が複数個有る場合を想定して作ってみました。 SELECT id ,(LENGTH(value)-LENGTH(REPLACE(value,'abc','')))/3 +(LENGTH(value)-LENGTH(REPLACE(value,'fg','')))/2 +(LENGTH(value)-LENGTH(REPLACE(value,'vw','')))/2 +(LENGTH(value)-LENGTH(REPLACE(value,'pqr','')))/3 +(LENGTH(value)-LENGTH(REPLACE(value,'xyz','')))/3 AS 個数 FROM テーブルA ORDER BY 2 DESC

kotokoto_1980
質問者

お礼

nharasawa様 ご回答ありがとうございます。 教えていただいた方法でうまくいきました。 レスポンスも悪くありませんでした。 とても勉強になりました。 ありがとうございます。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

ちょっと強引ですが、こんな感じでしょうか? select ID,sum(value like '%abc%')+ sum(value like '%fg%')+ sum(value like '%vw%')+ sum(value like '%pqr%')+ sum(value like '%xyz%') AS hit from a group by ID order by hit desc

kotokoto_1980
質問者

お礼

yambejp様 ご回答ありがとうございます。 こういった方法があるのですね。 うーん、勉強になりました。 感謝です!!!

関連するQ&A