mysql的source语句和group_concat函数

Source

 source语句可能会乱码,解决方案如下:

mysql -u root -p --default-character-set=utf8 
use dbname 
source /root/data.sql;

 

低版本mysql,group_concat函数如果处理的是整数,返回的是整数字符的ascii编码,解决方案如下:

group_concat(cast(t1.channel_id as char))

取消mysql的group_concat函数的长度限制,解决方案如下:

修改配置文件my.ini
group_concat_max_len=-1并重启mysql

group_concat_max_len是系统变量,还可以通过sql语句修改:

set global group_concat_max_len = 4294967295;
set session group_concat_max_len = 4294967295;
show variables like 'group_concat_max_len';

group_concat函数排序和设置分隔符:

group_concat(t1.channel_id order by t1.channel_id desc)
group_concat(t1.channel_id separator ',')

group_concat函数根据条件输出不同值:

group_concat函数中可以使用case when和if函数

 

发布了343 篇原创文章 · 获赞 137 · 访问量 67万+