sqlserver的for xml path和mysql的group_concat的区别

时间:2024-04-05 10:41:58

    前几天遇到公司更换数据库,将sqlserver更改为mysql,更改完后发现后台sql报错,是一个关于多行转换成一行的SQL问题,度娘告知for xml path只适用于sqlserver,并不适用于mysql,而mysql的group_concat等同于sqlserver的for xml path,下面介绍一下他们的用法,以及区别:

for xml path:

sqlserver>select id,name from table where name like '%zhangsan%'  for xml path('');

group_concat:

mysql> select id,group_concat(name separator ';') from aa group by id;【以id分组,把name字段的值打印在一行,分号分隔】

下面粘贴一下我写的sql实例:

sqlserver的for xml path和mysql的group_concat的区别sqlserver的for xml path和mysql的group_concat的区别

可以看出两个sql除了这个两个不一样之外,基本类型用法、连接方式也不一样,下面是关于一些mysql的基本类型用法和拼接字符串、转换用法,请参考:【1】MySQL类型转换 使用CAST将varchar转换成int类型排序   【2】  MySQL 字符串拼接