Heim >Datenbank >MySQL-Tutorial >Anleitung zur Verwendung der MySQL-Funktionen concat und group_concat
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 hinzumysql> select concat(',',name,',') from `user`;
+--------------------------+| concat(',',fdipzone,',') |
+--------------------------+| ,fdipzone, |
+--------------------------+1 row in set (0.00 sec)
2. Einer der Parameter ist nullmysql> select concat(null,name) from `user`;
+-------------------+| concat(null,name) |
+-------------------+| NULL |
+-------------------+1 row in set (0.00 sec)
2.concat_ws()-Funktion
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.
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 nullmysql> 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
[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!