我正在尝试使用PHP在MysqL数据库中的字符串中搜索单词.
我遇到的问题是它在我的PHP页面上搜索并吐出结果,但是任何接近搜索单词的单词也会在我的页面上得到结果.
women's clothing
现在,如果我搜索一个女性的单词,结果会正确地显示在我的页面上但是如果我搜索单词men,我的页面上会显示相同的结果,因为女性这个单词中有单词men.
这是我目前的SQL查询:
SELECT id, category_name, image_url FROM data WHERE `category_name` LIKE '%$sub%' GROUP BY category_name
我试图将’%$sub%’更改为’$sub’,但这根本不会返回任何结果!
有人可以就此提出建议吗?
编辑:
category_name列中的字符串各不相同,因为它们来自外部API,所以无法更改.
这些字符串可以变化.所以看起来像女装连衣裙裙子和另一个可能看起来像女鞋,另一个可能看起来像女式皮包,另一个可能看起来像男鞋等等….
所以我需要做的是显示关键字女性的所有结果,并显示所有男性的结果.我希望这是有道理的.
但是目前,男人和女人的结果同时显示,因为正如我在上面解释的那样,女人这个词中有男人这个词.
解决方法:
您可以使用MysqL的REGEXP运算符,使用单词匹配来完成此操作.
SELECT ... WHERE column REGEXP '[[:<:]]$sub[[:>:]]' ...