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!“
没有找到相关结果
已邀请:
2 个回复
结乳
只需在[]内添加更多标点符号,并注意转义那些需要转义的项目。 让我知道任何问题。 (我不知道这是否是处理它的最佳方法,但它确实有效)。就是说,如果有人有任何建议,请告诉我,我将相应地进行修改。 更新资料 好的,阅读一些应该是您想要的: WHERE plainText REGEXP \'\\ s \“。$ palavra。\” [!。] {1} \\ s \' 我不是100%正则表达式,可能需要调整。有关信息,我将MySQL手册用于REGEXP。如果我有机会测试/调整它,我会的。祝你好运。 旧答案: 为什么不只使用ѭ2来代替正则表达式呢?
应该做到这一点,只需在单词前后添加空格。
鞘垒飘
我不了解您的正则表达式,很抱歉,但是我无法回答为什么您匹配“ aquecimentos” 我也可以输入要返回的\“ \” aquecimento。\“或\” aquecimento!“ 在这种情况下,REGEXP将为:
这意味着在$ palavra之前和之后都可以使用\“和\'。如果在palavra之后!是正确的,也可以。 我没有对其进行测试,但是我认为它将起作用。