mysql 字符转换,cast,concat 字符转换

来源:互联网 发布:海关数据有用吗 编辑:程序博客网 时间:2024/05/15 07:41

1、以id分组,把name字段的值打印在一行,逗号分隔,以name排倒序

       mysql> select id,group_concat(name order by name desc) from aa group by id;

       +------+---------------------------------------+
       | id   | group_concat(name order by name desc) |
       +------+---------------------------------------+
       |    1 | 20,20,10                              |
       |    2 | 20                                    |
       |    3 | 500,200                               |
       +------+---------------------------------------+

       3 rows in set (0.00 sec)
2、cast,concat 字符转换

1、将Int 转为varchar经常用 concat函数,比如concat(8,’0′) 得到字符串 ’80′
2、将varchar 转为Int 用 cast(a as signed) a为varchar类型的字符串
总结:类型转换和SQL Server一样,就是类型参数有点点不同 : CAST(xxx AS 类型) , CONVERT(xxx,类型)
可用的类型
二进制,同带binary前缀的效果 : BINARY
字符型,可带参数 : CHAR()
日期 : DATE
时间: TIME
日期时间型 : DATETIME
浮点数 : DECIMAL
整数 : SIGNED
无符号整数 : UNSIGNED

cast函数运行示例

select CAST(concat('e','er') as char)as b;

 

mysql> select cast(’125e342.83′ as signed) as clm1, cast(‘foo seo 589′ as signed) as clm2,cast(’3.35′ as signed) as clm3;
+——+——+——+
| clm1 | clm2 | clm3 |
+——+——+——+
|  125 |    0 |    3 |
+——+——+——+
1 row in set, 3 warnings (0.00 sec)