2017-01-05 21 views
-2

У меня есть этот запрос,команда LIKE не работает на хосте

SELECT * FROM Takhfif WHERE TakhfifName LIKE '%keyword%' AND CityID=2 

это пример я иметь динамическую версию этого кода.

Однако этот код отлично работает на локальном компьютере, но не работает на хосте!

мой местный Sql Server является 2014 и хост-сервера SQL является 2012

, если этот код не работает на SQL Server 2012, что код я должен использовать для точного поиска?

+1

Что такое ошибка? – Abhi

+1

удалить двойные кавычки ("). –

+0

oops, то есть для кода C#! –

ответ

0

Somethings рассмотреть

  1. Поиск одного ключевого слова в колонке. (Ключевое слово 1, слово 2, KEYWORD3)
  2. Поиск ключевое слово в строке в столбце (В поисках это ключевое слово1 в предложении)

Попробуйте использовать ключевое слово с пространством вокруг него.

SELECT * FROM Takhfif WHERE TakhfifName LIKE ' %keyword% ' AND CityID=2 
SELECT * FROM Takhfif WHERE TakhfifName LIKE '% keyword %' AND CityID=2 

надеюсь, что это помогает

0

это пример, у меня есть динамическая версия этого кода.

Это заставляет меня думать, что вы используете переменную ... Я объясняю, что ниже

Однако этот код работает прекрасно на местном, но не работает в хост!

Этот код не будет предоставлять различные результаты независимо, если вы запустите его в SQL Server 2008, 2012, 2016, и т.д. ...

мой местный Sql Server является 2014 и хост-сервера SQL является 2012

Это не имеет значения, если данные не отличается (не зеркально/реплицировать)

, если этот код не работает на SQL server 2012 какой код я должен использовать для точный поиск?

Вы заявили, что «это не работает». Если вы хотите «точно», то вы используете только оператор = ... не функцию LIKE.

WHERE TakhfifName = 'keyword' 
--or if you have a variable 
WHERE TakhfifName = @keyword 

Либо вы буквально пытаются искать работу keyword и, очевидно, не существует, или вы не уверены в том, как правильно использовать LIKE функцию в SQL Server. Рассмотрим следующие примеры ...

declare @Takhfif table (TakhfifName varchar (64), CityID int) 
insert into @Takhfif (TakhfifName, CityID) values 
('United States',1), 
('China',1), 
('Russia',1), 
('Brazil',1), 
('France',1), 
('Japan',2), 
('Morocco',2) 

--This query will return records where CityID = 1 and the letters ra are located anywhere in the TakhfifName 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE '%ra%' AND CityID=1 

--This query will return records where CityID = 1 and the letter a is located at the END of the name 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE '%a' AND CityID=1 

--This query will return records where CityID = 1 and the letter C is located at the beginning of the name 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE 'c%' AND CityID=1 

----------------------------------------------------------------------------- 
--If you want to use these with a variable, you have to use concatonation 
----------------------------------------------------------------------------- 

declare @variable varchar(16) 

set @variable = 'ra' 
--This query will return records where CityID = 1 and the letters ra are located anywhere in the TakhfifName 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE '%' + @variable + '%' AND CityID=1 

set @variable = '%a' 
--This query will return records where CityID = 1 and the letter a is located at the END of the name 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE '%' + @variable AND CityID=1 

set @variable = 'c%' 
--This query will return records where CityID = 1 and the letter C is located at the beginning of the name 
SELECT * 
FROM @Takhfif 
WHERE TakhfifName LIKE @variable + '%' AND CityID=1