我正在项目中实现搜索,因此我必须按任意顺序搜索数据,所以我要遵循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
上使用categories
索引,其方法如下:
MATCH(categories)
AGAINST('+women +rings' IN BOOLEAN MODE)
也就是说两个“单词”都出现了,而没有顺序或接近度的限制。