2015-11-05 239 views
4

我需要搜索表字段包含特殊字符。我找到了解决方案here,例如:MYSQL搜索一个字符串是否包含特殊字符?

SELECT * 
FROM `tableName` 
WHERE `columnName` LIKE "%#%" 
OR `columnName` LIKE "%$%" 
OR (etc.) 

但是这个解决方案太宽泛了。我需要提及所有特殊字符。但我想这搜索类似的东西:

SELECT * 
FROM `tableName` 
WHERE `columnName` LIKE '%[^a-zA-Z0-9]%' 

也就是说搜索列其中不仅包含A-Z,A-Z和0-9,但一些其他人物也。是否有可能与MYSQL

回答

9

使用regexp

SELECT * 
FROM `tableName` 
WHERE `columnName` REGEXP '[^a-zA-Z0-9]' 

这将选择所有在特定列至少含有一个一个非字母数字字符的行。

REGEXP '[^[:alnum:]]' 
+2

我一直在寻找任何非字母数字也。但是,我也想允许连字符和空格。这是我用于此的正则表达式。 REGEXP'[^ a-zA-Z0-9 [.hyphen-minus。] [。space。]]' – panofish

+0

'我正在寻找任何非字母数字也',我认为空格,连字符也是一个非字母数字的数字。 –

相关问题