簡體   English   中英

如何在單個查詢中更新mysql中同一列中的不同值?

[英]How to update different values in same column in mysql in single query?

我有一個表名測試,其中包含兩列 id 和 mysql db 中的計數。 我想在單個查詢中做類似的事情(我知道這不起作用)。

UPDATE test
SET 
    count = (1, 2, 3)
WHERE
    id IN (5, 8, 9);

當 count 和 id 固定時我可以使用CASE但在我的情況下它們會改變所以我不能使用它。 給定示例,它們有 3 個值,但可能在 1 到 10 之間變化。如果有人知道如何在單個查詢中執行此操作,請提供幫助。

如果您有很多值對,一種解決方案是將它們存儲在單獨的表中,然后將其加入更新查詢中:

update test t
inner join mapping m on m.id = t.id
set t.count = m.count

您可以在查詢中使用派生表:

UPDATE test t JOIN
       (SELECT 1 as cnt, 5 as id UNION ALL
        SELECT 2 as cnt, 8 as id UNION ALL
        SELECT 3 as cnt, 9 as id
       ) x
       ON t.id = x.id        
    SET count = x.cnt;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM