Буду очень признателен за помощь в поиске, которую я пытаюсь создать для музыкального сайта караоке с использованием ASP.NET и SQL SERVER ...
У меня есть таблица с именем Диски , которая имеет следующие поля:
ID, DiscCode, DiscTitle, DiscType,
Тема, Производитель
Существует также таблица с именем Tracks со следующими полями
ID, DiscID, Исполнитель, Название
ОК, представьте, что пользователь выполняет поиск по следующему ...
Artist: Michael Jackson
Title: Thriller
Theme: Pop
Manufacturer: Sunfly
DiscType: cdg
Я бы использовал такой SQL-оператор, как этот ...
SELECT D.ID, T.Artist, T.Title, D.Manufacturer, D.DiscTitle
FROM Discs D
INNER JOIN Tracks T
ON T.DiscID = D.ID
WHERE T.Artist LIKE 'Michael JAckson%'
AND T.Title LIKE 'Thriller%'
AND D.Theme = 'Pop'
AND D.Manufacturer = 'Sunfly'
AND DiscType = 'DVD';
Это будет работать нормально, но если результатов не будет найдено, я действительно хочу сообщить пользователю, сколько результатов он получит, если какой-либо из фильтров будет удален со счетчиком, как это делает ebay ...
Извините, результатов не найдено, но мы нашли некоторые похожие результаты.
Разные художники (13)
Разные производители (4)
Разные темы (2)
У клиента есть 2 условия для нас. А) он хочет использовать совпадение «старт с» для каждого элемента, следовательно, подстановочный знак в конце каждого НРАВИТСЯ, и Б) он не хочет использовать поиск MSSQL Full TEXT.
Я не хочу делать много поисков, так как это действительно замедлит ход событий, и инстинктивно кажется, что должен быть какой-то способ сделать это с помощью группирования и подсчета.
Любая помощь будет принята с благодарностью.
Jon