Я пытаюсь сделать запрос, который делает следующее: у меня есть столбцы в моей базе данных Items, и эти столбцы называются Title, AuthorName и ItemType. Я хочу сделать следующее в моем запросе: Пользователь вводит имя_пользователя, заголовок и выбирает ItemType из выпадающего списка. Пользователь может оставить поля AuthorName или Title пустыми. Даже если он, например, не заполняет часть AuthorName, если элемент найден с указанным ItemType и указанный заголовок i показывает его в результатах. Аналогично, заголовок может быть пустым, в этом случае элемент с указанным именем пользователя указан в списке результатов. Вот мой запрос:Что не так в этом запросе в asp.net?
SELECT *
FROM [Items]
WHERE ((([Title] LIKE '%' + @Title + '%')
AND ([ItemType] = @ItemType)
)
OR (([AuthorName] LIKE '%' + @AuthorName + '%')
AND ([ItemType] = @ItemType)
)
)
Но если имя_илиииииииииииииидззззшшшшт, результатов не найдено. Может ли кто-нибудь помочь?
Благодаря
Определить пустой. Пустой означает строку нулевой длины или нуль? –
Просто имейте в виду, что ведущие подстановочные знаки, такие как%, препятствуют использованию базы данных любыми индексами, которые могут иметься в этом столбце, и заставляют ее выполнять сканирование таблицы. Трейлинг подстановочные знаки в порядке. Проблема в том, что только главные шаблоны. Если таблица большая, любой поиск, который вы делаете таким образом, будет медленным. Просто факт жизни. – criticalfix