2015-11-05 297 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

'我正在尋找任何非字母數字也',我認爲空格,連字符也是一個非字母數字的數字。 –

相關問題