前几天遇到公司更换数据库,将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实例:
可以看出两个sql除了这个两个不一样之外,基本类型用法、连接方式也不一样,下面是关于一些mysql的基本类型用法和拼接字符串、转换用法,请参考:【1】MySQL类型转换 使用CAST将varchar转换成int类型排序 【2】 MySQL 字符串拼接