Подтвердить что ты не робот

SQL reverse LIKE

У меня есть таблица со списком стран. Скажем, одна из этих стран - "Македония"

Какой SQL-запрос вернет запись "Македония", если будет сделан поиск для "Республики Македония"?

Я считаю, что в linq это будет что-то вроде

var countryToSearch = "Republic of Macedonia";

var result =  from c in Countries
              where countryToSearch.Contains(c.cName) 
              select c;

Теперь, каков будет эквивалент SQL для запроса выше?

Если бы это было наоборот (т.е. в базе данных была сохранена длинная версия имени страны), следующий запрос должен работать:

Select * from country
where country.Name LIKE (*Macedonia*)

но я не вижу, как я могу изменить его.

Боковое примечание: названия стран в таблице всегда будут короткими версиями названий стран

4b9b3361

Ответ 1

Вы можете использовать CHARINDEX для этого.

Select * from country
where CHARINDEX(country.Name, 'Republic of Macedonia') > 0

Ответ 2

Просто отмените оператор (и исправьте синтаксис)

Select * from country
where 'Republic of Macedonia' LIKE CONCAT('%',country.Name,'%')