Heim  >  Artikel  >  Datenbank  >  Wie kombiniere ich mehrere Tabellensuchen in PHP mit MySQL und einem Schlüsselwort?

Wie kombiniere ich mehrere Tabellensuchen in PHP mit MySQL und einem Schlüsselwort?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 12:11:02928Durchsuche

How to Combine Multiple Table Searches in PHP with MySQL and a Keyword?

Kombinieren mehrerer Tabellensuchen in PHP mit MySQL und einem Schlüsselwort

Sie haben eine Datenbank mit drei Tabellen: Nachrichten, Themen und Kommentare. Jede Tabelle enthält zwei Felder, „Inhalt“ und „Titel“. Ihr Ziel besteht darin, eine einzelne Suchabfrage durchzuführen, die alle sechs Felder (messages.content, messages.title, topic.content, topic.title, comments.content, comments.title) mit einem bestimmten Schlüsselwort durchsucht.

Um dies zu erreichen, ändern Sie Ihre Abfrage so, dass sie mehrere UNION-Anweisungen verwendet. Jede UNION-Anweisung durchsucht eine bestimmte Tabelle mit dem LIKE-Operator nach dem Schlüsselwort in den Feldern „Inhalt“ und „Titel“. Die folgende aktualisierte Abfrage kombiniert alle drei Suchvorgänge:

$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 verwendet den UNION-Operator, um die Ergebnisse jeder SELECT-Anweisung in einem einzigen Ergebnissatz zu kombinieren. Das hinzugefügte Feld „Typ“ gibt an, aus welcher Tabelle die Zeile stammt.

"msg" = messages table
"topic" = topics table
"comment" = comments table

Das obige ist der detaillierte Inhalt vonWie kombiniere ich mehrere Tabellensuchen in PHP mit MySQL und einem Schlüsselwort?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn