SQL CONCAT字符串+ WHERE子句中的列



我在Foo中得到了一个数值。A,它在Bar中有等价的,但带有字符串前缀("Z")。我试图将"Z"附加到栏。col值。我也尝试过CONCAT,但没有成功。以下代码返回"未知列Z"。

UPDATE Foo, Bar
SET Foo.B = Bar.B
WHERE Foo.A = Z + Bar.A
例如

14 (Foo.A) = Z14(吧)。

如果你的语法工作,那么很可能你正在使用MySQL。在任何情况下,问题是需要在字符串常量周围加上引号。所以试试这个:

UPDATE Foo join
       Bar
       on Foo.A = concat('Z', Bar.A)
    SET Foo.B = Bar.B;

无论在什么数据库中,字符串和日期常量都应该使用单引号。这是ANSI标准,它减少了错误的可能性。

你缺少Z周围的单引号,即你的代码应该是:

UPDATE Foo, Bar
SET Foo.B = Bar.B
WHERE Foo.A = CONCAT('Z', Bar.A);

其实我找到了。我错过了CONCAT中的""

正在运行:

UPDATE Foo, Bar
SET Foo.B = Bar.B
WHERE Foo.A = CONCAT("Z", Bar.A)

Where is join语句,在update语句中使用表B,在Where条件中使用表A。这行不通

最新更新