2014-12-02 51 views
-1

我们有这样的一个表:是否可以使用WHERE'FIELD'IN子句进行更新? SQL

表A

ID  DAY CALL 
mdma  1  A 
mdma2 2  B 
mdma3 3  C 

所以我想更新的所有字段基于呼叫在他们的ID。

UPDATE A SET CALL = 'D' WHERE ID IN ('mdma','mdma2', 'mdma3'); 

我在DataStudio上收到错误,我无法运行它。我们对此WHERE IN子句进行了辩论。这是否是一个有效的论点?

预先感谢您。

编辑:

ERROR: 

An unexpected token ")" was found following "mdma', 
". Expected tokens may include: "<value_expr>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.16.53 
+3

是的,你可以。你能告诉我们错误吗? – Vertig0 2014-12-02 18:30:07

+0

是的,它是有效的SQL。具体的错误是什么? – 2014-12-02 18:31:00

+0

这就是实际的陈述?似乎你错过了一个引用,也许查询是在一些易变的单引号内? – Vertig0 2014-12-02 18:32:30

回答

0

CALL是保留字。你必须反引号(“`”):

UPDATE A SET `CALL` = 'D' WHERE ID IN ('mdma','mdma2', 'mdma3');  
+0

在OP的评论中,这只是一个例子。好的电话BTW – Vertig0 2014-12-02 18:54:15

+0

这只是问题的一小部分(这个问题并不清楚,但在评论中已经明确--OP正试图在'IN'语句中使用50,000+个ID)。 – 2014-12-02 18:54:41

相关问题