次のようなテーブルがあるとします。
テーブル:businesses
+----+------------------------+
| id | name |
+----+------------------------+
| 1 | Carolyn Wong Cakes |
| 2 | Cupcakin Cackes Shop |
| 3 | Wong Cackes Shop |
| 4 | Indie Cakes & Pastries |
+----+------------------------+
best matched result
名前の中のいくつかの単語を検索しながら取得したい。たとえば、検索したい:Wong Cackes Shop
これは 3 単語です。
上記の検索にこのクエリを使用します。
SELECT * FROM businesses WHERE (
name LIKE '% Wong %' OR
name LIKE '% Cackes %' OR
name LIKE '% Shop %'
)
最初に一致した結果になると思いrecord 3
ますが、結果は次のとおりです。
Carolyn Wong Cakes
//2
一致する単語でCupcaking Cackes Shop
//2
一致する単語でWong Cackes Shop
//3
一致する単語で
単語を検索して、他の結果の上に最も一致した結果を持つレコードを取得するにはどうすればよいですか?
このような:
Wong Cackes Shop
//3
一致する単語でCupcaking Cackes Shop
Carolyn Wong Cakes
編集: 私のword-boundaries
LIKE メソッドにも問題があります。3 つの単語のいずれかで開始または終了する結果は得られません。
たとえば、//一致spaces
しない //一致しないLIKE '% word %'
Wong[space]
[space]Wong[space]
[space]Wong
ありがとう。