我有以下數據:只用一個查詢更新多行?
id = 1
name = 'john'
id = 2
name = 'jimmy'
等
有沒有辦法來更新我的表只使用一個查詢?
Table
id | name
1 | johnny
2 | james
我有以下數據:只用一個查詢更新多行?
id = 1
name = 'john'
id = 2
name = 'jimmy'
等
有沒有辦法來更新我的表只使用一個查詢?
Table
id | name
1 | johnny
2 | james
馬丁·史密斯的解決方案肯定是少數行的最佳解決方案實現這一目標。如果要更新更多行數,最好使用不同的值發佈幾個UPDATES
,可能需要準備好的語句。
只是爲了好玩,我設計了另一種解決方案:
MEMORY
表UPDATE your_table JOIN temp_table ON (<insert JOIN condition here>) SET your_table.field1 = temp_table.field1, your_table.field2 = temp_table.field2
。好吧,這個味道。認真。使用準備好的UPDATE
。
您可以CASE
UPDATE YourTable
SET name = CASE
WHEN id = 1 THEN 'johnny'
ELSE 'james'
END
WHERE id IN (1, 2)
或者另一種可能性(SQL Fiddle)
UPDATE YourTable a
JOIN
(SELECT 1 AS id, 'johnny' AS name
UNION ALL
SELECT 2 AS id, 'james' AS name
) b ON
b.id = a.id
SET a.name = b.name;
檢查此博客:http://www.kavoir.com/2009/05/mysql-update-multiple-rows-with-one-single-query.html - 第一個結果,當我搜索更新多行與單個查詢 – karthikr