Рассмотрим запрос (он работает как на Oracle, так и на MySQL)
UPDATE table1
SET something_id = CASE
WHEN table1_id = 1446 THEN 423
WHEN table1_id = 2372 THEN 426
WHEN table1_id = 2402 THEN 428
WHEN table1_id = 2637 THEN 429
WHEN table1_id = 2859 THEN 430
WHEN table1_id = 3659 THEN 433
END
WHERE table1_id IN (1446,2372,2402,2637,2859,3659)
Этот запрос может быть довольно большим, поэтому мне было интересно, каково ограничение количества условий (операторов WHEN, THEN), которые может содержать один запрос. Есть ли способ обойти это?
Например:
Я знаю, что максимальное количество значений, которые можно передать IN
, равно 1000, и чтобы преодолеть это, мы можем сделать
`WHERE TABLE1_ID IN ([1000 values]) OR TABLE1_ID IN ([more values])`