Heim  >  Artikel  >  Datenbank  >  Wie führe ich eine schlüsselwortbasierte Suche in mehreren Tabellen in PHP und MySQL durch?

Wie führe ich eine schlüsselwortbasierte Suche in mehreren Tabellen in PHP und MySQL durch?

Linda Hamilton
Linda HamiltonOriginal
2024-11-14 19:07:02743Durchsuche

How to Perform a Keyword-Based Multi-Table Search in PHP and MySQL?

PHP MySQL: Suche in mehreren Tabellen mit einem Schlüsselwort

Das Finden von Ergebnissen aus mehreren Tabellen in einer MySQL-Datenbank mithilfe eines Schlüsselworts kann eine Herausforderung sein . In diesem Artikel befassen wir uns mit dem Problem der Suche über „messages.content“, „messages.title“, „topics.content“, „topics.title“, „comments.content“ und „comments.title“ aus drei verschiedenen Kategorien Tabellen („Nachrichten“, „Themen“ und „Kommentare“) mithilfe des Operators „LIKE“.

Abfrage für die Suche in mehreren Tabellen:

Um a Für die Suche über mehrere Tabellen können wir den UNION-Operator verwenden. Die folgende Abfrage kombiniert die Ergebnisse aus jeder Tabelle:

$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);

Identifizieren der Tabellenherkunft der Ergebnisse:

Sobald die Ergebnisse vorliegen, benötigen wir eine Möglichkeit, die zu bestimmen Tabelle, aus der jede Zeile stammt. Zu diesem Zweck haben wir jeder Zeile eine Spalte „Typ“ hinzugefügt, die den Tabellennamen angibt („msg“ für „Nachrichten“, „Topic“ für „Themen“ und „Kommentar“ für „Kommentare“). Nach dem Ausführen der Abfrage können die Ergebnisse abgerufen und basierend auf der Spalte „Typ“ sortiert werden, um die Zeilen aus bestimmten Tabellen zu isolieren.

Beispielverwendung:

Angenommen, wir Sie haben ein Stichwort „Beispiel“ und möchten alle passenden Ergebnisse finden. Die Suche in mehreren Tabellen gibt alle Zeilen zurück, in denen das Schlüsselwort in den Feldern „Inhalt“ oder „Titel“ einer der drei Tabellen vorkommt. Anschließend können wir die Spalte „Typ“ verwenden, um die Ergebnisse für jede Tabelle separat zu gruppieren und anzuzeigen.

Das obige ist der detaillierte Inhalt vonWie führe ich eine schlüsselwortbasierte Suche in mehreren Tabellen in PHP und MySQL durch?. 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