У меня есть запись в таблице, как 'abc 100% text'.
Я хочу найти все записи, содержащие 100%.
Что будет LIKE запросом?
LIKE
SELECT * FROM TABLE where ColName LIKE '100%%'
Приведенный выше запрос возвращает неверные результаты.
Спасибо.
SELECT * FROM TABLE where ColName LIKE '%100[%]%'
Взгляните на Использование подстановочных знаков в качестве литералов
Вы можете использовать символы подстановки, соответствующие символам в качестве буквенных символов. Чтобы использовать подстановочный знак в качестве литерального символа, заключите подстановочный знак в скобки.
SELECT columns FROM table WHERE column LIKE '%[%]%'
или
SELECT columns FROM table WHERE column LIKE '%\%%' ESCAPE '\'
как описано в http://web.archive.org/web/20150519072547/http://sqlserver2000.databases.aspfaq.com:80/how-do-i-search-for-special-characters-e-g-in-sql-server.html
Кроме того, вы можете использовать спасательные персонажи ...
LIKE '%100^%%' ESCAPE '^'
http://web.archive.org/web/20150519072547/http://sqlserver2000.databases.aspfaq.com:80/how-do-i-search-for-special-characters-e-g-in-sql-server.html
Используйте обратную косую черту для выхода:
SELECT * FROM TABLE where ColName LIKE '%100\%%';
Возможно, вам придется попробовать это:
SELECT * FROM TABLE where ColName LIKE '%100\%%' ESCAPE '\';