關鍵字:REGEXP
REGEXP 語句形式和 LIKE 語句相似,REGEXP 后面跟正則表達式。如果需要區分大小寫,可以在 REGEXP 后加關鍵字 BINARY。
所有的正則表達式的規則都可以在 SQL 語句中使用,具體見另外一篇文章。 不同的是在引用元字符的時候需要用 \\ 來引用,如:
SELECT *FROM student WHERE stu_name REGEXP '^t.*\\d+$';
1、基本字符匹配
如查詢學生表中學生姓名包含 13 的所有行:
SELECT *FROM student WHERE stu_name REGEXP '13';
REGEXP 和 LIKE 的一個重要區別:
如果使用上面的語句,關鍵字替換為 LIKE,那么不會返回數據。
因為 LIKE 匹配的是整個列,如果被匹配的文本在列值中出現,LIKE 將不會找到它,相應的行也不會被返回(除非使用通配符)。
而 REGEXP 是在列值內進行匹配,如果被匹配的文本在列值中出現,REGEXP 會找到並返回。
2、OR 匹配
符號:|
如查詢學生表中學生姓名包含 13 或 41 的所有行:
SELECT *FROM student WHERE stu_name REGEXP '13|41';