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[[:>:]]' ...

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...