Я пытаюсь обновить один столбец в подмножестве таблицы, но не могу понять, как это сделать чистым и эффективным способом.
Примите во внимание следующее:
// MyTable
id name flag
0 Steve 0
1 Bob 0
...
10500 Rick 0
Я хочу изменить flag
на 1, но только для некоторых случаев.Я пытался использовать
UPDATE MyTable
SET flag = 1
WHERE id <= 500
Но очевидно, что это не работает, потому что подзапрос возвращает более одного значения.Технически, я мог бы сделать это так:
UPDATE MyTable SET flag = 1 WHERE id = 0
UPDATE MyTable SET flag = 1 WHERE id = 1
...
UPDATE MyTable SET flag = 1 WHERE id = 500
Но кто хочет сделать это так?:) Есть ли лучший способ для меня отформатировать этот запрос и обновить только те, которые соответствуют неравенству?
РЕДАКТИРОВАТЬ
Чтобы уточнить, что именно происходит: когда ясказать «некоторые из этих случаев» я имею в виду только те, которые соответствуют неравенству, в этом случае id <= 500
Когда я запускаю UPDATE MyTable SET flag = 1 WHERE id <= 500
, я получаю следующую ошибку:
Subquery returned more than 1 value.
This is not permitted when the subquery follows =, !=, <, <= , >, >=
or when the subquery is used as an expression.