Ich muss eine Auswahlabfrage schreiben, die eine einzelne Tabelle nach Wörtern durchsucht, die aus einer Benutzereingabeabfragezeichenfolge wie "John Doe Engineering"
stammen. Die Zeichenfolge kann aus einem einzelnen oder mehreren Wörtern bestehen. Die Abfragezeichenfolge wird als Parameter an eine gespeicherte Prozedur übergeben. Insgesamt gibt es ca. 20 Spalten, die durchsucht werden müssen. Mein erster Gedanke war so etwas wie diese:Abfrage auswählen, um mehreren Spalten mit mehreren Schlüsselwörtern zu entsprechen
SELECT *
FROM Employees
WHERE FirstName LIKE '%John%' OR FirstName LIKE '%Doe%' OR FirstName LIKE '%Engineering%'
WHERE LastName LIKE '%John%' OR LastName LIKE '%Doe2%' OR LastName LIKE '%Engineering%'
WHERE Manager LIKE '%John%' OR Manager LIKE '%Doe%'OR Manager LIKE '%Engineering%'
WHERE Department LIKE '%John%' OR Department LIKE '%Doe%'OR Department LIKE '%Engineering%'
--repeat for 16 more table columns
Aber ich bin nicht sicher, wie man am besten die Abfragesyntax, wenn die Benutzer Query-String-Eingabe zu generieren. Außerdem scheint dies eine sehr ineffiziente Abfrage zu sein. Wäre es besser, in diesem Fall full text search
zu verwenden? Ich frage mich, was der beste Ansatz sein könnte?
SQL Server über eine Funktion zur Volltextsuche aufgerufen hat. Wahrscheinlich, was du hier willst. – Hogan
Ich denke "Volltextsuche". –
@GordonLinoff - Bis 3 Sekunden! : D – Hogan