Как выполнить параметризованный SQL-запрос (используя LIKE with @ variable)


Я хочу сделать запрос select с вводом от пользователя, какой правильный синтаксис LIKE использовать, где я должен установить % в первой строке или во второй?

var areaName = "SELECT AOIId FROM dbo.AreaOFInterest WHERE AOIName LIKE @AOIName ";
db.Database.ExecuteSqlCommand(areaName, @searching);
1 2

1 ответ:

Если вы хотите найти все имена, начинающиеся с указанных символов, укажите LIKE @AOIName + '%'. Для всех имен, содержащих строку, укажите LIKE '%' @AOIName + '%'.

Вы также можете захотеть экранировать как подстановочные знаки в предоставленной строке поиска, чтобы они рассматривались как литералы:

var aoiNameParameterValue = AOIName.Replace("[", "[[]").Replace("%", "[%]").Replace("_", "[_]").Replace("^", "[^]");