Heim > Datenbank > MySQL-Tutorial > Hauptteil

Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat

jacklove
Freigeben: 2018-06-09 09:30:02
Original
2207 Leute haben es durchsucht

1.concat()-Funktion

Verwendungsmethode: concat(str1, str2,…)
Das zurückgegebene Ergebnis ist die durch den Verbindungsparameter generierte Zeichenfolge beliebig Wenn der Parameter null ist, ist der Rückgabewert null

Hinweis:
Wenn alle Parameter nicht-binäre Zeichenfolgen sind, ist das Ergebnis eine nicht-binäre Zeichenfolge
If Das Argument enthält eine beliebige Binärzeichenfolge. Das Ergebnis ist eine Binärzeichenfolge
. Ein numerischer Parameter wird in ein äquivalentes Binärzeichenfolgenformat konvertiert. Um dies zu vermeiden, können Sie beispielsweise eine explizite Typumwandlung verwenden :

select concat(cast(int_col as char), char_col);
Nach dem Login kopieren

Verwendungsbeispiel:

1. Fügen Sie „,“ an beiden Enden des Feldes hinzu

mysql> select concat(',',name,',') from `user`;
+--------------------------+| concat(',',fdipzone,',') |
+--------------------------+| ,fdipzone,               |
+--------------------------+1 row in set (0.00 sec)
Nach dem Login kopieren

2. Einer der Parameter ist null

mysql> select concat(null,name) from `user`;
+-------------------+| concat(null,name) |
+-------------------+| NULL              |
+-------------------+1 row in set (0.00 sec)
Nach dem Login kopieren
2.concat_ws()-Funktion

Verwendungsmethode:

concat_ws(separator,str1,str2,…)

Die Funktion concat_ws() ist eine Sonderform der Funktion concat(). Der erste Parameter ist das Trennzeichen für andere Parameter. Die Position des Trennzeichens liegt zwischen den beiden zu verkettenden Zeichenfolgen. Das Trennzeichen kann eine Zeichenfolge oder ein anderer Parameter sein.

Wenn das Trennzeichen null ist, ist das Ergebnis null.

Die Funktion ignoriert Nullwerte nach jedem Trennzeichenparameter, aber concat_ws() ignoriert keine leeren Zeichenfolgen.

Verwendungsbeispiel:

1. Verwenden Sie „,“, um mehrere Felder zu trennen

mysql> select concat_ws(',',country_code,phone,region) from `user`;
+------------------------------------------+| concat_ws(',',country_code,phone,region) |
+------------------------------------------+| 86,13794830550,GZ                        |
+------------------------------------------+1 row in set (0.00 sec)
Nach dem Login kopieren

2 Das Symbol ist null

mysql> select concat_ws(null,country_code,phone,region) from `user`;
+-------------------------------------------+| concat_ws(null,country_code,phone,region) |
+-------------------------------------------+| NULL                                      |
+-------------------------------------------+1 row in set (0.00 sec)
Nach dem Login kopieren

3 Es gibt Null- und Leerzeichenfolgen in den Parametern

mysql> select concat_ws(',',country_code,phone,null,region,'',grade) from `user`;
+--------------------------------------------------------+| concat_ws(',',country_code,phone,null,region,'',grade) |
+--------------------------------------------------------+| 86,13794830550,GZ,,200                                 |
+--------------------------------------------------------+1 row in set (0.00 sec)
Nach dem Login kopieren
3

Verwendung:

GROUP_CONCAT([DISTINCT] expr [,expr …]

[ORDER BY {unsigned_integer | col_name | Formula} [ASC | DESC] [,col …]]

[SEPARATOR str_val] )

group_concat kann den Verbindungswert der Ausdruckskombination abrufen und „distinct“ verwenden, um doppelte Werte auszuschließen. Die Sortierung kann mithilfe der order by-Klausel erfolgen.
Trennzeichen ist eine Zeichenfolge, die zum Trennen jedes Elements im Ergebnissatz verwendet wird. Der Standardwert ist Komma. Dieses Trennzeichen kann durch Angabe des Trennzeichens „“ vollständig entfernt werden.


Verwendungsbeispiel:

Tabellenstruktur

CREATE TABLE `article_in_category` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `article_id` int(11) unsigned NOT NULL, `category_id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `article_id_INDEX` (`article_id`), KEY `category_id_INDEX` (`category_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Nach dem Login kopieren

Daten einfügen:

INSERT INTO `article_in_category` (`id`, `article_id`, `category_id`) VALUES (NULL, '1', '1'),
(NULL, '1', '2'),(NULL, '1', '3'),(NULL, '2', '4'),(NULL, '2', '3'),(NULL, '2', '5'),(NULL, '3', '1'),
(NULL, '3', '5'),(NULL, '3', '6'),(NULL, '4', '8');
Nach dem Login kopieren
mysql> select * from `article_in_category`;
+----+------------+-------------+| id | article_id | category_id |
+----+------------+-------------+|  1 |          1 |           1 |
|  2 |          1 |           2 |
|  3 |          1 |           3 |
|  4 |          2 |           4 |
|  5 |          2 |           3 |
|  6 |          2 |           5 |
|  7 |          3 |           1 |
|  8 |          3 |           5 |
|  9 |          3 |           6 || 10 |          4 |           8 |
+----+------------+-------------+
Nach dem Login kopieren

Erhalten Sie die ID des Artikels und alle Kategorie-IDs

mysql> select article_id,group_concat(category_id order by category_id asc) from `article_in_category` group by article_id;
+------------+----------------------------------------------------+| article_id | group_concat(category_id order by category_id asc) |
+------------+----------------------------------------------------+|          1 | 1,2,3                                              |
|          2 | 3,4,5                                              |
|          3 | 1,5,6                                              ||          4 | 8                                                  |
+------------+----------------------------------------------------+4 rows in set (0.00 sec)
Nach dem Login kopieren

Hinweis: Die Funktion group_concat() hat eine Längenbeschränkung für das zurückgegebene Ergebnis, der Standardwert beträgt 1024 Bytes

Ansicht die maximale Länge des Rückgabewerts von group_concat

mysql> show global variables like '%group_concat_max_len%';
+----------------------+-------+| Variable_name        | Value |
+----------------------+-------+| group_concat_max_len | 1024  |
+----------------------+-------+
Nach dem Login kopieren
Ändern Sie die maximale Länge des Rückgabewerts von group_concat

mysql> set global group_concat_max_len=2048;
Query OK, 0 rows affected (0.03 sec)mysql> show global variables like '%group_concat_max_len%';
+----------------------+-------+| Variable_name        | Value |
+----------------------+-------+| group_concat_max_len | 2048  |
+----------------------+-------+
Nach dem Login kopieren
In diesem Artikel werden die Verwendungsanweisungen der MySQL-Funktionen concat und group_concat erläutert Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website. Verwandte Empfehlungen:


Erklärung zum Umgang mit dem fehlgeschlagenen Neustart von MySQL Innodb und dem fehlgeschlagenen Neustart


Erklärung verwandter Inhalte Informationen zum Erhalten des angegebenen Datums in PHP


Detaillierte Erläuterung der PHP-Generierung einer eindeutigen RequestID-Klasse


Das obige ist der detaillierte Inhalt vonAnleitung zur Verwendung der MySQL-Funktionen concat und group_concat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage