Heim  >  Artikel  >  Datenbank  >  Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat

Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat

jacklove
jackloveOriginal
2018-06-09 09:30:022120Durchsuche

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

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)

2. Einer der Parameter ist null

mysql> select concat(null,name) from `user`;
+-------------------+| concat(null,name) |
+-------------------+| NULL              |
+-------------------+1 row in set (0.00 sec)
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)

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)

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

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');
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 |
+----+------------+-------------+

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)

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  |
+----------------------+-------+
Ä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  |
+----------------------+-------+
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!

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