Reputation: 9188
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
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