Méthode d'utilisation : concat(str1, str2,…)
Le résultat renvoyé est la chaîne générée par le paramètre de connexion S'il y en a. any Si le paramètre est nul, la valeur de retour est nulle
Remarque :
Si tous les paramètres sont des chaînes non binaires, le résultat est une chaîne non binaire
Si l'argument est dans Contient n'importe quelle chaîne binaire, le résultat est une chaîne binaire
Un paramètre numérique est converti en un format de chaîne binaire équivalent. Pour éviter cela, vous pouvez utiliser une conversion de type explicite
Par exemple. :
select concat(cast(int_col as char), char_col);
Exemple d'utilisation :
1. Ajoutez ',' aux deux extrémités du champ
mysql> select concat(',',name,',') from `user`; +--------------------------+| concat(',',fdipzone,',') | +--------------------------+| ,fdipzone, | +--------------------------+1 row in set (0.00 sec)
<. 🎜 >
2. L'un des paramètres est nul
mysql> select concat(null,name) from `user`; +-------------------+| concat(null,name) | +-------------------+| NULL | +-------------------+1 row in set (0.00 sec)
concat_ws(separator,str1,str2, …)
La fonction concat_ws() est une forme spéciale de la fonction concat(). Le premier paramètre est le séparateur des autres paramètres. La position du délimiteur se situe entre les deux chaînes à concaténer. Le délimiteur peut être une chaîne ou d'autres paramètres.Si le délimiteur est nul, le résultat est nul.
La fonction ignore les valeurs nulles après tout paramètre délimiteur, mais concat_ws() n'ignore aucune chaîne vide.
Exemple d'utilisation :
1. Utilisez ',' pour séparer plusieurs champs
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. .Le délimiteur est nul
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. Il y a des chaînes nulles et vides dans les paramètres
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)
GROUP_CONCAT([DISTINCT] expr [,expr …] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] [,col …]]
[SEPARATOR str_val])
separator est une chaîne utilisée pour séparer chaque élément du jeu de résultats. La valeur par défaut est la virgule, ce séparateur peut être complètement supprimé en spécifiant le séparateur "".
Exemple d'utilisation :
Structure de tableCREATE 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;
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 | +----+------------+-------------+
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)
Remarque : la fonction group_concat() a une limite de longueur sur le résultat renvoyé, la valeur par défaut est de 1024 octets
Afficher la longueur maximale de la valeur de retour de group_concat
mysql> show global variables like '%group_concat_max_len%'; +----------------------+-------+| Variable_name | Value | +----------------------+-------+| group_concat_max_len | 1024 | +----------------------+-------+
Modifier la longueur maximale de la valeur de retour de 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 | +----------------------+-------+
Recommandations associées :
Explication sur la façon de gérer l'échec du démarrage de mysql innodb et ne peut pas être redémarré
Explication sur la façon d'obtenir le date spécifiée en PHP
Explication détaillée de PHP générant une classe RequestID unique
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!