在MySQL中,% 是一個非常常見的關鍵字,也是一個通配符,常常用于模糊匹配。在正則表達式中,它代表著零個或多個字符。
SELECT * FROM `User` WHERE `username` LIKE '%Jack%';
上面的代碼將返回所有用戶名中包含“Jack”的記錄,比如“JackSmith”、“AustinJack”等等。
另外,% 也可以用在模糊匹配中的開頭或結尾。
-- 匹配以J開頭的用戶名 SELECT * FROM `User` WHERE `username` LIKE 'J%'; -- 匹配以son結尾的用戶名 SELECT * FROM `User` WHERE `username` LIKE '%son';
需要注意的是,在使用 % 進行模糊匹配時,盡可能不要在前面使用 %,這會導致MySQL進行全表掃描,降低查詢效率。
-- 不推薦這種方式 SELECT * FROM `User` WHERE `username` LIKE '%ack%';
如果實在需要在前面使用 %,可以使用全文索引等技術來提高查詢效率。
-- 使用全文索引進行模糊匹配 SELECT * FROM `User` WHERE MATCH(`username`) AGAINST('Jack*' IN BOOLEAN MODE);
綜上所述,% 是MySQL中的一個非常有用的通配符,可以幫助我們進行模糊匹配,但在使用時需要注意一些細節,避免影響查詢效率。