微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP:在mysql中搜索字符串中的单词?

我正在尝试使用PHPMysqL数据库中的字符串中搜索单词.

我遇到的问题是它在我的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[[:>:]]' ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐