PHP + mySQL-精确匹配单词

| 我在mysql数据库中有一些文本,我正在使用此查询来尝试用php匹配查询中的确切单词:
$palavra = \"aquecimento\";

$query = \"SELECT * FROM webqda_fontesInt_text WHERE plainText REGEXP \'[[:<:]]\" . $palavra . \"[[:>:]]\' AND projectoId=\'$projectoId\' AND reciclagem=\'0\' AND id=\'$id\' GROUP BY id\";
有人可以解释一下为什么返回诸如“ aquecimento”,“ aquecimentos”,“ desaquecimentos”之类的记录吗? 我只想返回完全匹配的内容,但是却无法正常工作。 先感谢您! 更多信息 我也可以输入要返回的\“ \” aquecimento。\“或\” aquecimento!“     
已邀请:
最终更新 好的,我能够看一下并进行一些测试。最终使它起作用:
WHERE plainText RLIKE \'[ ]\".$palavra.\"[?!.,]?[ ]\'
只需在[]内添加更多标点符号,并注意转义那些需要转义的项目。 让我知道任何问题。 (我不知道这是否是处理它的最佳方法,但它确实有效)。就是说,如果有人有任何建议,请告诉我,我将相应地进行修改。 更新资料 好的,阅读一些应该是您想要的:     WHERE plainText REGEXP \'\\ s \“。$ palavra。\” [!。] {1} \\ s \' 我不是100%正则表达式,可能需要调整。有关信息,我将MySQL手册用于REGEXP。如果我有机会测试/调整它,我会的。祝你好运。 旧答案: 为什么不只使用ѭ2来代替正则表达式呢?
WHERE plainText LIKE \'% \".$palavra.\" %\'
应该做到这一点,只需在单词前后添加空格。     
你为什么不尝试
\"REGEXP \'\\s\".$palavra.\"\\s\'\"
我不了解您的正则表达式,很抱歉,但是我无法回答为什么您匹配“ aquecimentos”        我也可以输入要返回的\“ \” aquecimento。\“或\” aquecimento!“    在这种情况下,REGEXP将为:
REGEXP \'\\s[\\\"\\\\\']+\".$palavra.\"(!)?[\\\"\\\\\']+\\s\'
这意味着在$ palavra之前和之后都可以使用\“和\'。如果在palavra之后!是正确的,也可以。 我没有对其进行测试,但是我认为它将起作用。     

要回复问题请先登录注册