Abhishek Singh
Abhishek Singh

Reputation: 9188

Having trouble while searching in mysql via REGEXP

I am implementing search in my project so I have to search data which will be in any order so I'm following this question. But my query was not working

my php query is

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

when I change regex to Women.*Ring|Ring.*Women It works fine but (?=.*Women)(?=.*Rings) approach is easy and can be used for multiple words just adding them.

Upvotes: 0

Views: 41

Answers (1)

Rick James
Rick James

Reputation: 142296

MySQL does not implement (? syntax in REGEXPs. I think MariaDB 10.0.5 does.

For a significant subset of such queries, you could use a FULLTEXT index on that categories with this:

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

That says both "words" occur, without limitations on order or proximity.

Upvotes: 1

Related Questions