Ich brauche eine einfache Suche in einer kleinen Inhaltstabelle: ID, Name, Beschreibung, Inhalt. Die Ergebnisse müssen nach Prioritäten geordnet sein
- Name
- Beschreibung
- Inhalt
wenn das gesuchte Wort im Beschreibungsfeld gefunden wurde, wird es erst nach allen Zeilen angezeigt, die einen Hund im Namensfeld haben
Was ich getan habe:
Ich habe versucht, eine temporäre Tabelle mit der gleichen Struktur wie die Tabelle zu erstellen, die ich verwende, aber mit einer anderen Feldpriorität. für jedes Feld, das ich für die Suche verwende, tun Auswahl einfügen zur temporären Tabelle
Beispiel:
DECLARE @query NVARCHAR(255)
CREATE TABLE #tbl_search
(
[id] INT NOT NULL ,
[name] NVARCHAR(255) ,
[description] NVARCHAR(MAX) ,
[content] NVARCHAR(MAX) ,
[priority] INT
)
--searching in name field
INSERT INTO #tbl_search
( [ID] ,
[name] ,
[description] ,
[content] ,
[priority]
)
SELECT [ID] ,
[name] ,
[description] ,
[content] ,
1
FROM [tbl_content]
WHERE name LIKE '%' + @query + '%'
--searching in description field
INSERT INTO #tbl_search
( [ID] ,
[name] ,
[description] ,
[content] ,
[priority]
)
SELECT [ID] ,
[name] ,
[description] ,
[content] ,
2
FROM [tbl_content]
WHERE description LIKE '%' + @query + '%'
AND id NOT IN ( SELECT id
FROM #tbl_search )
--.....
SELECT *
FROM #tbl_search
ORDER BY [priority]
DROP TABLE #tbl_search
1 Stimmen
Ist da irgendwo eine Frage drin?
0 Stimmen
Ich schätze, er fragt, wie würdest du es machen
0 Stimmen
Am, ja du hast recht, das ist eine Frage :)