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

'Я искал любые не буквенно-цифровые выражения ', я думаю, пространство, дефис также является не буквенно-цифровым числом. –

Смежные вопросы