如何在MySQL查询中使用正则表达式字边界?
例如,我想匹配“产品”或“简报”,
它适用于OR
,
IF(? = 'product' OR ? = 'newsletter', ... , ...)
但正则表达式怎么样?我想它会是这样的吗?
IF(? REGEXP '^('product'||'newsletter')+$', ..., ... )
答案 0 :(得分:4)
SELECT *
FROM tbl
WHERE description REGEXP '[[:<:]]red[[:>:]]|[[:<:]]blue[[:>:]]'
或作为选择表达式:
SELECT IF(description REGEXP '[[:<:]]red[[:>:]]|[[:<:]]blue[[:>:]]', 1, 0) AS is_matched, tbl.*
FROM description
您可以使用RLIKE
作为同义词,但REGEXP
似乎更受欢迎 [citation needed] 。
REGEXP不区分大小写,除非与二进制字符串一起使用。
mysql> SELECT 'a' REGEXP 'A', 'a' REGEXP BINARY 'A';
-> 1 0
答案 1 :(得分:1)