web-dev-qa-db-ja.com

文字列に特殊文字が含まれている場合のMYSQL検索?

特殊文字が含まれているテーブルフィールドを検索する必要があります。私は here のような解決策を見つけました:

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
Al Amin Chayan

regexpを使用

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

これにより、特定の列に少なくとも1つの非英数字が含まれるすべての行が選択されます。

または

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