Синтаксис TSQL для включения поисковых терминов в скобки - PullRequest
1 голос
/ 19 декабря 2011

Я полагаю, [ и ] - специальные символы при использовании с предложением LIKE в TSQL (SQlserver 2005, если это имеет значение).Как мне избежать поискового термина в хранимой процедуре, я сделал ниже, но не возвращает действительные записи, даже когда существует

SELECT * FROM Table WHERE Column LIKE '%['+ @searchedTerm +']'

Так что является действительным, что нужно делать при поиске, как выше ??*

Ответы [ 3 ]

4 голосов
/ 19 декабря 2011

Вам нужно экранировать открывающую (а не закрывающую) скобку, например:

LIKE '%[[]' + @searchedTerm + ']'

На странице MSDN для LIKE есть раздел «Использование подстановочных знаков в качестве литералов»

Изменить, после комментария

  • LIKE '[[]cap]%' ищет имя, содержащее строку [cap]
  • LIKE '[wel]%' ищет имя, содержащее один из буквы w, e или l
2 голосов
/ 19 декабря 2011

Попробуйте это:

DECLARE @searchedTerm as varchar(50); 
SET @searchedTerm = 'TEST VALUE'

SELECT * FROM Table WHERE Column LIKE '%[[]' + @searchedTerm +']'
0 голосов
/ 19 декабря 2011

попробуйте это:

SELECT * FROM Table, ГДЕ Столбец LIKE '% / [' + @searchedTerm + ']' {escape '/'}

...