Возьмите следующий пример (SQL Server 2008 - может работать с большим количеством).Вы должны представить себе @query
как некоторый параметр, источником которого является пользовательский ввод:
DECLARE @query varchar(100)
SET @query = 'less than 1% fat'
CREATE TABLE X ([A] VARCHAR(100))
INSERT X VALUES ('less than 1% fat')
INSERT X VALUES ('less than 1% of doctors recommend this - it''s full of fat!')
SELECT * FROM X WHERE A LIKE '%' + @query + '%'
DROP TABLE X
В запросе указано 'less than 1% fat'
, но мы на самом деле получаем больше, чем хотели:
less than 1% fat
less than 1% of doctors recommend this - it's full of fat!
Чтобы получить требуемое поведение, я изменяю @query
на 'less than 1[%] fat'
- тогда возвращается только первый результат.
Существует ли стандартный способ подготовки строк для предложений, использующих LIKE
s, илия должен свернуть свой собственный?