项目中用到了三个字段,需要对它们用concat()函数进行拼接以及分组group by,下面一锅端了concat()的这个函数,有concat()、concat_ws()和group_concat()字段拼接的用法,我们来自己造点数据,做个测试
项目中用到了三个字段,需要对它们用concat() 函数进行拼接以及分组group by,下面一锅端了concat()的这个函数,有concat()、concat_ws()和 group_concat() 字段拼接的用法,我们来自己造点数据,做个测试。 一、concat()1、准备一张test_concat表
2、插入一些数据
3、执行sql
出现了null值。。。 4、解决方式
要是name字段的值是空字符串会怎么样呢? 继续往下看 这时候插入的时候换成了空字符串 ' '
没有显示null,而是显示一片空白。
其实这两种方法都可以,第二种更严谨一些。 二、concat_ws()使用函数CONCAT_WS()。使用语法为:CONCAT_WS(separator,str1,str2,…) CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。 第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。
直接不需要判断为不为空,这种方式不会出现null值的情况! 三、group_concat()
在 MySQL 中,你可以得到表达式结合体的连结值。通过使用 DISTINCT 可以排除重复值。如果希望对结果中的值进行排序,可以使用 ORDER BY 子句。 SEPARATOR 是一个字符串值,它被用于插入到结果值中。缺省为一个逗号 (","),可以通过指定 SEPARATOR “” 完全地移除这个分隔符。 可以通过变量 group_concat_max_len 设置一个最大的长度。在运行时执行的句法如下: SET [SESSION | GLOBAL] group_concat_max_len = unsigned_integer; 如果最大长度被设置,结果值被剪切到这个最大长度。如果分组的字符过长,可以对系统参数进行设置:SET @@global.group_concat_max_len=40000; 使用示例:
|
2021-06-02
2021-06-05
2022-06-27
2024-02-19
2022-10-12