MySQL-Abfragespleißen
Wenn Sie MySQL zum Abfragen verwenden, müssen Sie manchmal mehrere Felder oder Felder in mehreren Tabellen verbinden. In diesem Fall können Sie für den Betrieb die von MySQL bereitgestellte String-Splicing-Funktion verwenden. Zu den häufig verwendeten Funktionen zur Zeichenfolgenverkettung gehören CONCAT, CONCAT_WS und GROUP_CONCAT.
Die CONCAT-Funktion wird verwendet, um zwei oder mehr Zeichenfolgen oder Felder zu verbinden. Die Syntax lautet:
CONCAT(string1, string2, ...)
wobei string1, string2... die zu verbindenden Zeichenfolgen oder Felder darstellen, die Konstanten sein können. Spaltennamen, Ausdrücke, Funktionen usw. Um beispielsweise den Namen und die Position eines Mitarbeiters zu ermitteln, können Sie die folgende Anweisung verwenden:
SELECT CONCAT(last_name, ' ', first_name) AS name, job_title FROM employees
Die CONCAT-Funktion verkettet hier Nachname und Vorname und trennt sie durch Leerzeichen als Feldname des Abfrageergebnisses. Die laufenden Ergebnisse lauten wie folgt:
Name | Jobtitel |
---|---|
Geoni Bakewell | Produktionsleiter |
Lemuel Marmie | Versandleiter |
Lino Uselman | Ingenieur |
Honey Tunney | Sales Manager |
... | ... |
CONCAT_WS-Funktion wird auch für die Zeichenfolgenverkettung verwendet, kann aber im Gegensatz zur CONCAT-Funktion ein Trennzeichen angeben Die Syntax lautet:
CONCAT_WS(separator, string1, string2, ...)
Unter diesen stellt das Trennzeichen das Trennzeichen dar, bei dem es sich um eine beliebige Zeichenfolge handeln kann. Zeichenfolge1, Zeichenfolge2 ... stellen die zu verbindenden Zeichenfolgen oder Felder dar, und mehrere Zeichenfolgen werden durch Kommas getrennt. Um beispielsweise den vollständigen Namen und die E-Mail-Adresse eines Mitarbeiters zu finden, können Sie die folgende Anweisung verwenden:
SELECT CONCAT_WS(' ', first_name, last_name) AS full_name, email FROM employees
Die Funktion CONCAT_WS verwendet hier Leerzeichen als Trennzeichen, um Vorname und Nachname als Feld „Vollständiger Name“ im Abfrageergebnis zu verketten. Die laufenden Ergebnisse sind wie folgt:
vollständiger_Name | |
---|---|
Geoni Bakewell | gbakewell@classicmodelcars.com |
Lemuel Marmie | lmarmie@ classic modelcars.com |
Lino Uselman | luselman @classicmodelcars.com |
Honey Tunney | htunney@classicmodelcars.com |
... | ... |
GROUP_CONCAT Funktion wird zum Kombinieren verwendet Mehrere Felder oder mehrere Felder in einem Datensatz werden zu einer Zeichenfolge zusammengefügt, und die Syntax lautet:
GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val])
wobei expr die zu verbindende Spalte oder den Ausdruck darstellt; ORDER BY und SEPARATOR stellen die Sortierung bzw. das Trennzeichen dar, die optional sind. Es ist zu beachten, dass die von der Funktion GROUP_CONCAT zurückgegebene Zeichenfolge standardmäßig eine Längenbeschränkung hat, die durch Festlegen des Parameters group_concat_max_len geändert werden kann.
Um beispielsweise die Namen aller Mitarbeiter in jeder Abteilung abzufragen und sie in einer durch Kommas getrennten Zeichenfolge zu verketten, können Sie die folgende Anweisung verwenden:
SELECT department, GROUP_CONCAT(last_name ORDER BY employee_number ASC SEPARATOR ', ') AS employee_names FROM employees GROUP BY department
Die Funktion GROUP_CONCAT sortiert hier den Nachnamen in der Reihenfolge der Mitarbeiternummer und sortiert sie mit durch Leerzeichen getrennten Kommas als Feld „Mitarbeiternamen“ im Abfrageergebnis. Die laufenden Ergebnisse lauten wie folgt:
Abteilung | Mitarbeiternamen |
---|---|
Admin | Murphy, Patterson, Bondur, Ferrante, Firrelli |
Kundendienst | T seng, Vanauf, Von ^^ ^^^^ |
Finanzen | Bow, Firrelli, Patterson, Tseng |
... | ... |
Im MySQL-Abfrageprozess müssen wir das oft tun Fragen Sie mehrere Felder ab oder verketten Sie Felder aus mehreren Tabellen. Bei der Implementierung dieser Funktion stellt MySQL drei Funktionen zur Zeichenfolgenverkettung bereit: CONCAT, CONCAT_WS und GROUP_CONCAT, mit denen zwei oder mehr Zeichenfolgen verbunden, mehrere Zeichenfolgen verbunden und durch angegebene Trennzeichen getrennt werden und mehrere Felder zu einer Zeichenfolge kombiniert werden. Die Verwendung dieser Funktionen kann unsere Datenverarbeitung erheblich erleichtern und die Abfrageeffizienz verbessern.
Das obige ist der detaillierte Inhalt vonMySQL-Abfragespleißen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!