简体   繁体   中英

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.

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM