我正在尝试返回行中的列只包含字母数字值而没有符号等的行。
表CARS_ALL
型号 ----- 颜色 --------- 所有者
菲亚特---------蓝< 3 -------保罗
福特--------红色!$ƒƒ-----莎莉
日产-----红------------布拉德
所以我想使用一个仅返回第3行的限定符,因为其中两个颜色值包含非字母数字字符
Select * FROM CARS_ALL WHERE COLOR LIKE '%[^a-zA-Z0-9 ]%'
但这不起作用......
答案 0 :(得分:2)
MySQL的LIKE
运算符仅支持非常原始的模式匹配。相反,请在此处使用REGEXP
:
SELECT *
FROM CARS_ALL
WHERE COLOR NOT REGEXP '.*[^A-Za-z0-9].*';
答案 1 :(得分:0)
我会这样做:
Select *
from CARS_ALL
where COLOR regexp '^[^a-zA-Z0-9 ]+$'
这假设连字符是空格。如果它是连字符,那么它应该包含在字符集中。
Select *
from CARS_ALL
where COLOR regexp '^[^a-zA-Z0-9\-]+$'