Как выполнить параметризованный SQL-запрос (используя LIKE with @ variable)
Я хочу сделать запрос select с вводом от пользователя, какой правильный синтаксис LIKE
использовать, где я должен установить %
в первой строке или во второй?
var areaName = "SELECT AOIId FROM dbo.AreaOFInterest WHERE AOIName LIKE @AOIName ";
db.Database.ExecuteSqlCommand(areaName, @searching);
1 ответ:
Если вы хотите найти все имена, начинающиеся с указанных символов, укажите
LIKE @AOIName + '%'
. Для всех имен, содержащих строку, укажитеLIKE '%' @AOIName + '%'
.Вы также можете захотеть экранировать как подстановочные знаки в предоставленной строке поиска, чтобы они рассматривались как литералы:
var aoiNameParameterValue = AOIName.Replace("[", "[[]").Replace("%", "[%]").Replace("_", "[_]").Replace("^", "[^]");