Как определить, содержит ли строка специальные символы?
Как определить, содержит ли строка специальные символы, такие как #,$,^,&,*,@,! и т.д. в SQL Server 2005?
3 ответа
Решение
Предполагая SQL Server:
например, если вы классифицируете специальные символы как что-либо, НЕ алфавитно-цифровое
DECLARE @MyString VARCHAR(100)
SET @MyString = 'adgkjb$'
IF (@MyString LIKE '%[^a-zA-Z0-9]%')
PRINT 'Contains "special" characters'
ELSE
PRINT 'Does not contain "special" characters'
Просто добавьте к другим символам, которые вы не классифицируете как особые, в квадратных скобках
SELECT * FROM tableName WHERE columnName LIKE "%#%" OR columnName LIKE "%$%" OR (etc.)
В postgresql вы можете использовать регулярные выражения в предложении WHERE. Проверьте http://www.postgresql.org/docs/8.4/static/functions-matching.html
В MySQL есть что-то похожее: http://dev.mysql.com/doc/refman/5.5/en/regexp.html