带有CAST / CONVERT的MySQL UPDATE

问题描述 投票:0回答:2

我觉得这应该很简单,但我不知道自己在做什么错;

我的查询看起来像这样:

UPDATE table_name SET varchar_column = CAST(int_column AS VARCHAR(255)) WHERE ...

但是我不断收到错误消息,指出存在语法错误;我也尝试使用CONVERT(int_column,VARCHAR(255)),但发生了同样的事情吗?

有人知道为什么吗?谢谢!

mysql sql
2个回答
1
投票

CAST()不接受VARCHAR(n)作为目标类型,如the documentation中所述。您可以改用CHAR(n)(或对于国家字符集使用NCHAR(n)):

UPDATE table_name SET varchar_column = CAST(int_column AS CHAR(255)) WHERE ...

0
投票

MySQL将进行隐式转换,因此您无需进行显式转换:

UPDATE table_name
    SET varchar_column = int_column ;

也就是说,显式转换通常是个好主意。 MySQL不对字符串采用长度参数。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.