This question already has answers here:
Search string by exact word in Mysql
                                
                                    (8个答案)
                                
                        
                                2年前关闭。
            
                    
我有一个带有句子列表的MySQL表,例如:

id | Sentence
---+---------------------------------------------------------------
 1 | Come On Boys, You Can do it my boy.
 2 | Everything is possible, impossible itself says I am possible.
 3 | Boys I know possible solutions are good!
 4 | Possible solutions are all failed its also possible


我必须在Sentence列上搜索准确的词,例如possible

有一些条件:


搜索词不能是任何词的前缀或后缀。


搜索单词possibleimpossible不正确。

标点符号可以在单词之前或之后。例如:!boyboy,
没有正确的possible Possible区分大小写的方法。


我尝试查询但没有用

mysql_query("SELECT * FROM products WHERE Sentence LIKE '%".$search."%'");


可能的标点符号为,.!?;-

我需要一个可行的解决方案。提前致谢 !

最佳答案

您可以使用REGEXP

SELECT *
FROM products
WHERE Sentence REGEXP '[[:<:]]possible[[:>:]]'
--                       ^^^            ^^^ word boundaries


这将对应于由单词边界包围的匹配possible。请注意,在演示中,标点符号算作单词边界。

另请注意,MySQL的REGEXP不区分大小写,因此上面的内容应与possiblePossible匹配。

演示在这里:

Rextester

关于mysql - MySQL-如何在句子栏中搜索完全匹配的单词? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43140920/

10-11 03:26