Ich bin bereits auf ein Problem gestoßen. Es gibt zwei Tabellen in der MySQL-Datenbank, in denen Standortinformationen wie Provinzen und Städte gespeichert sind, und die andere Benutzertabelle enthält drei Felder, die den drei Standortinformationen in der Adresstabelle entsprechen (sehr seltsame Tabelle). Format), wie in der Abbildung gezeigt:
Jetzt müssen wir die Daten in der Benutzertabelle abfragen und die entsprechenden Standortinformationen (Name) in der Adresstabelle basierend auf dem Wert der Provinz und abfragen Stadt in die Benutzertabelle eintragen und anzeigen;
Ich beherrsche SQL nicht, also habe ich eine allgemeine Logik herausgefunden
Zuerst müssen wir die Werte der drei Felder Provinz und Stadt in der Benutzertabelle abrufen. Unsere allgemeine Abfragemethode ist
SELECT province,city,district FROM `user` WHERE id =1;
Das ist relativ einfach: Erhalten Sie Das Ergebnis ist der Wert einer Zeile und drei Spalten, wie in der Abbildung gezeigt:
Dies ist die normale Schreibweise und verwenden Sie dann dieses Ergebnis als Abfragebedingung, um den Namen in der Adresstabelle abzufragen.
Natürlich scheint die Idee gut zu sein, aber die Ergebnisse der Abfrage sind in drei Abschnitte unterteilt, was für unsere nachfolgenden Abfragen nicht förderlich ist Verarbeiten Sie sie dann, bevor Sie sie abfragen. Zu diesem Zeitpunkt müssen wir zwei SQL-Funktionen verwenden, CONCAT_WS und CONCAT. Die Funktion der beiden Funktionen besteht darin, die spezifische Verwendung zu finden auf Baidu. Ich werde es hier nicht vorstellen:)
Unsere Abfrageanweisung kann also wie folgt geschrieben werden:SELECT CONCAT_WS(',',province,city,district) AS ids FROM `user` WHERE id =1;
SELECT GROUP_CONCAT(`name`) FROM address WHERE id IN (SELECT CONCAT_WS(',',province,city,district) FROM `user` WHERE id =1);
SELECT GROUP_CONCAT(`name`) FROM address WHERE INSTR( (SELECT CONCAT_WS(',', province, city, district) FROM `user` WHERE id = 1), id ) ;
SELECT GROUP_CONCAT(`name`) FROM address WHERE INSTR( CONCAT( ',', (SELECT CONCAT_WS(',', province, city, district) FROM `user` WHERE id = 1), ',' ), CONCAT(',', id, ',') ) ;
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine mehrspaltige Spleißabfrage in MySQL-Abfrageergebnissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!