テーブル内の 2 つのフィールドarticles
:
title
とbody
2 つのレコード:
meow bark | 1234 5678
とbird snake | 8596 2952
はどこmeow bark
にありtitle
、どこに1234 5678
あるのかbody
など...
SQL クエリ:
SELECT *,
CASE WHEN title = 'meow' then 1 else 0 end + CASE WHEN title = 'bark' then 1 else 0 end AS matches
FROM articles
ORDER BY matches DESC
両方の行を返します。私の構文の何が問題なのかを理解するのを手伝ってください。タイトルがクエリの内容と一致する行のみを返すことを期待しています。CASE がどのように機能するかを理解していない場合を除き、上記の例のタイトルが meow または bark と一致する場合は表示されますが、そうでない場合は表示されません。
目標は、ほとんどの一致に基づいて結果を返すことです。ここでフィドルを見てください:http://sqlfiddle.com/#!3/13b33/10
私はそれを少し修正しましたが、それを壊すほど十分には考えていませんでした。