Mehrere Tabellensuche in MySQL mit einem Schlüsselwort
Frage:
In einer Datenbank mit drei Tabellen (Nachrichten, Themen und Kommentare), die jeweils die Felder „Inhalt“ und „Titel“ enthalten. Wie können wir mit a eine LIKE-Suche über alle Tabellen hinweg durchführen? Stichwort? Wie unterscheiden wir die Ursprungstabelle für jedes Ergebnis?
Lösung:
Um mehrere Tabellen mit einem Schlüsselwort in PHP und MySQL zu durchsuchen, können wir eine UNION-Abfrage verwenden :
$query = "(SELECT content, title, 'msg' as type FROM messages WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'topic' as type FROM topics WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%') UNION (SELECT content, title, 'comment' as type FROM comments WHERE content LIKE '%" . $keyword . "%' OR title LIKE '%" . $keyword ."%')"; mysql_query($query);
Diese Abfrage vereint die Ergebnisse aus jeder Tabelle in einer einzigen Ausgabe. Das zu jeder Zeile hinzugefügte Feld „Typ“ dient als Kennung für die Tabelle, aus der sie stammt. Nachdem wir diese Abfrage ausgeführt haben, können wir die Ergebnisse durchlaufen und die Ursprungstabelle basierend auf dem „Typ“-Wert bestimmen.
Das obige ist der detaillierte Inhalt vonWie führe ich eine Stichwortsuche über mehrere Tabellen in MySQL durch und identifiziere die Ursprungstabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!