Как определить, содержит ли строка специальные символы?

Как определить, содержит ли строка специальные символы, такие как #,$,^,&,*,@,! и т.д. в 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

Другие вопросы по тегам