Как мне избежать знака процента в T-SQL?

На этот вопрос также есть ответ, но в нем упоминается DB2.

Как мне найти строку, используя LIKE который уже имеет процент % символ в нем? LIKE оператор использует % символы для обозначения подстановочных знаков.

5 ответов

Решение

Используйте скобки. Так что искать на 75%

WHERE MyCol LIKE '%75[%]%'

Это проще, чем ESCAPE и является общим для большинства СУБД

Вы можете использовать ESCAPE ключевое слово с LIKE, Просто добавьте нужный символ (например, "!") К каждому из существующих % знаки в строке, а затем добавить ESCAPE '!' (или ваш выбор персонажа) до конца запроса.

Например:

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

Это заставит базу данных обрабатывать 80% как фактическую часть строки для поиска, а не 80(подстановочный знак).

Документы MSDN дляLIKE

WHERE column_name LIKE '%save 50[%] off!%'

Вы можете использовать приведенный ниже код, чтобы найти конкретное значение.

      WHERE col1 LIKE '%[%]75%'

Если вам нужно однозначное число после знака%, вы можете написать следующий код.

      WHERE col2 LIKE '%[%]_'

В MySQL,

WHERE column_name LIKE '%|%%' ESCAPE '|'

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