web-dev-qa-db-fra.com

Recherche MYSQL si une chaîne contient des caractères spéciaux?

Je dois rechercher le champ de la table contient des caractères spéciaux. J'ai trouvé une solution donnée ici quelque chose comme:

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

Mais cette solution est trop large. Je dois mentionner tous les caractères spéciaux. Mais je veux quelque chose qui recherche quelque chose comme:

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

C'est une colonne de recherche qui contient non seulement a-z, A-Z et 0-9 mais aussi d'autres caractères. Est-ce possible avec MYSQL

9
Al Amin Chayan

Utilisez regexp

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

Cela sélectionnerait toutes les lignes où la colonne particulière contient au moins un caractère non alphanumérique.

ou

REGEXP '[^[:alnum:]]'
17
Avinash Raj