我正在项目中实施搜索,因此我必须搜索任何顺序的数据,以便我关注this question。但我的查询无法正常工作
我的php查询是
$cat="(?=.*Women)(?=.*Rings)";
$sql="select * from tbl_jewellery where categories RLike '$cat';";
当我将正则表达式更改为Women.*Ring|Ring.*Women
时
它工作正常但(?=.*Women)(?=.*Rings)
方法很简单,只需添加它们即可用于多个单词。
答案 0 :(得分:1)
MySQL没有在REGEXP中实现(?
语法。我认为MariaDB 10.0.5可以。
对于此类查询的重要子集,您可以使用FULLTEXT
上的categories
索引:
MATCH(categories)
AGAINST('+women +rings' IN BOOLEAN MODE)
这两个"单词"发生,不受秩序或接近的限制。