2017-02-23 30 views
0

我在我的项目中实施搜索,所以我必须搜索将以任何顺序的数据,所以我遵循this question。但我的查询是不工作在通过REGEXP在mysql中搜索时遇到问题

我的PHP查询

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

当我改变正则表达式来Women.*Ring|Ring.*Women 它工作正常,但(?=.*Women)(?=.*Rings)方法是很简单的,可用于多个单词只是增加他们。

回答

1

MySQL在REGEXPs中没有实现(?语法。我认为MariaDB 10.0.5的确如此。

对于这样的查询的显著子集,可以对categories这种使用FULLTEXT指数:

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

,说这两个“单词”出现,没有订单或接近限制。

相关问题