通过REGEXP

时间:2017-02-23 11:58:41

标签: php mysql regex

我正在项目中实施搜索,因此我必须搜索任何顺序的数据,以便我关注this question。但我的查询无法正常工作

我的php查询是

 $cat="(?=.*Women)(?=.*Rings)";
 $sql="select * from tbl_jewellery where categories RLike '$cat';";

当我将正则表达式更改为Women.*Ring|Ring.*Women时 它工作正常但(?=.*Women)(?=.*Rings)方法很简单,只需添加它们即可用于多个单词。

1 个答案:

答案 0 :(得分:1)

MySQL没有在REGEXP中实现(?语法。我认为MariaDB 10.0.5可以。

对于此类查询的重要子集,您可以使用FULLTEXT上的categories索引:

MATCH(categories)
    AGAINST('+women +rings' IN BOOLEAN MODE)

这两个"单词"发生,不受秩序或接近的限制。