2014-12-02 26 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

相關問題