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

Php mysql在一行中找到最匹配的单词,php,mysql,match,boolean-search,Php,Mysql,Match,Boolean Search,我有以下表格: ------------------------ | uid | attrvalue | ------------------------ | 1 | Spray | | 2 | strong | | 3 | very strong | | 999 | Creme | ------------------------ 现在我有了一个php查询,我想找到所有查询所在的所有行 SELECT * FROM

我有以下表格:

------------------------
| 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

你在问什么?请正确解释你在问什么谢谢你的评论。我喜欢它只找到第1行和第3行。你需要定义你的规则,你说你想让Spray+very+strong匹配Spray但不是strong,但这两个都在查询中。看看