2014-12-02 2 views
-1

У нас есть это в таблице:Можно ли ОБНОВИТЬ с предложением WHERE 'FIELD' IN? SQL

СТОЛ

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. Это правильный аргумент или нет?

Заранее спасибо.

Edit:

ERROR: 

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

Да, вы можете. Можете ли вы показать нам ошибку? – Vertig0

+0

да, это действительно sql. Какова конкретная ошибка? –

+0

И это фактическое утверждение? кажется, что вам не хватает цитаты, может быть, запрос находится внутри какой-то переменной с использованием одинарных кавычек? – Vertig0

ответ

0

ВЫЗОВ это зарезервированное слово. вы должны указать его с помощью обратного хода ("` "):

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

В комментариях ОП сказал, что это всего лишь пример. Хороший вызов BTW – Vertig0

+0

Это лишь незначительная часть проблемы (что неясно из вопроса, но поясняется в комментариях к ней - ОП пытается использовать 50 000+ идентификаторов в операторе 'IN'). –

Смежные вопросы