Mysql在一行中找到最匹配的单词


mysql find best matching word in one row

我有以下表格:

------------------------
| uid |  attrvalue     |
------------------------
| 1   |  Spray         |
| 2   |  strong        |
| 3   |  very strong   |
| 999 |  Creme         |
------------------------

现在我在PHP中有一个查询,并希望找到所有查询所在的所有行。

SELECT * FROM attrtable WHERE MATCH (attrvalue) AGAINST ('Spray+very+strong' IN BOOLEAN MODE);

我喜欢它只找到第1行和第3行。但结果是1 2 3。

因此,查找表行中的所有单词或单词组合是很重要的。查询不包含表中没有的单词或组合单词(我首先检查这一点)。

只使用LIKE,但与您可能习惯的相反。

select query
from table1
where 'attrvalue' like concat(query,'%')
order by length(query) desc
limit 1