大家好!
之前遇到一個需求
需要搜尋mysql欄位中符合正規式的情況
那我們都知道
如果直接使用 LIKE 其實效率是非常差的
如果讓資料庫的table鎖死
也會讓整個網站停止運作
所以最好不要用 LIKE
那要用什麼好呢?
就用 REGEXP 吧
範例:搜尋欄位中有apple 或 flower 的資料
這邊的正規表示法不需要 "/" 斜線加在前後,也代表他不能設定額外屬性
//我的SQL語法都會使用大寫方便區別 SELECT * FROM `表單名稱` WHERE `欄位` REGEXP 'apple|flower'; //也可以使用LOWER轉小寫函數來忽略大小寫 SELECT * FROM `表單名稱` WHERE LOWER(`欄位`) REGEXP '[abc]{3}'; //也可以使用在SELECT 來判斷值,符合為1,不符合為0 SELECT `欄位` REGEXP "apple|flower" AS "result";
這樣就可以搜尋了
希望對大家有幫助
感恩!
留言板
歡迎留下建議與分享!希望一起交流!感恩!