假设我有一张这样的桌子:
桌子: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
谢谢。