我正在我的项目中实现搜索,因此我必须以任何顺序搜索数据,因此我遵循 this question 。但我的查询不起作用
我的 php 查询是
$cat="(?=.*Women)(?=.*Rings)";
$sql="select * from tbl_jewellery where categories RLike '$cat';";
当我将正则表达式更改为 Women.*Ring|Ring.*Women
它工作正常,但 (?=.*Women)(?=.*Rings)
方法很简单,可以用于多个单词,只需添加它们即可。
最佳答案
MySQL 没有在 REGEXP 中实现 (?
语法。我认为 MariaDB 10.0.5 可以。
对于此类查询的重要子集,您可以在该类别
上使用FULLTEXT
索引,如下所示:
MATCH(categories)
AGAINST('+women +rings' IN BOOLEAN MODE)
这表示两个“单词”都会出现,且不限制顺序或接近程度。
关于php - 通过 REGEXP 在 mysql 中搜索时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42415162/