题记:
没有什么能难倒中国程序员!
update里的拼接很小众,但是有时候你不会也是急的李元芳都要飞起来
update table a set a.column = concat('凡众一是男孩子,出门在外要保护好自己!',cast(a.id as char))
老师上线, 两个重点划出来:
concat cast
select cast(505656908 as char(50))
老师上线, 一个重点划出来:
cast
、谈谈拼接的过程,划重点
误区一、直接拼接
update t_cement_concrete_info a set a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+a.id
控制台报错:
[SQL] update
t_cement_concrete_info a
set
a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+a.id
[Err] 1292 - Truncated incorrect DOUBLE value: '凡众一是男孩子,出门在外要保护好自己!'
误区二、使用`CONVERT`(a.id,CHAR)
update t_cement_concrete_info a set a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+`CONVERT`(a.id,CHAR)
控制台报错:
[SQL] update
t_cement_concrete_info a
set
a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+`CONVERT`(a.id,CHAR)
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 4
误区三:使用CAST(a.id AS CHAR)
update t_cement_concrete_info a set a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+CAST(a.id AS CHAR)
控制台报错:
[SQL] update
t_cement_concrete_info a
set
a.report_address1 ='凡众一是男孩子,出门在外要保护好自己!'+CAST(a.id AS CHAR)(a.id,CHAR)
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(a.id,CHAR)' at line 4
解决方式一:
新建一个字段 cloumn1 存入: 凡众一是男孩子,出门在外要保护好自己!
update table a set a.cloumn1 ='凡众一是男孩子,出门在外要保护好自己!'
update table a set a.cloumn1 =a.cloumn+a.cloumn1
解决方式二(推荐):优化
update table a set a.column = concat('凡众一是男孩子,出门在外要保护好自己!',cast(a.id as char))
@延伸阅读
如何在sql语句中对数值类型进行转换:
MYsql数值类型的转换有2个函数
1.CAST()函数
CAST(value as type) 就是CAST(xxx AS 类型)
2.CONCERT()函数
CONVERT(value, type) 就是CONVERT(xxx,类型)
转换的类型类型,并不是你想转换成什么格式就能转换成什么格式,MySQL中有规定的类型:
1.二进制: BINARY
2.字符型,可带参数 : CHAR()
3.日期 : DATE
4.时间: TIME
5.日期时间型 : DATETIME
6.浮点数 : DECIMAL
7.整数 : SIGNED
8.无符号整数 : UNSIGNED
---------------------