2015-06-01 43 views
1

表 - galleries利用嵌套更新MySQL查詢

+----+----------+------------+----------+ 
| id | user_id | is_primary | photo | 
+----+----------+------------+----------+ 
| 1 | 1  | 1   | img1.jpg | 
| 2 | 2  | 1   | img2.jpg | 
| 3 | 1  | 0   | img3.jpg | 
| 4 | 1  | 0   | img4.jpg | 
| 5 | 1  | 0   | img5.jpg | 
| 6 | 3  | 1   | img6.jpg | 
| 7 | 2  | 0   | img7.jpg | 
+----+----------+------------+----------+ 

UPDATE galleries set is_primary=0 WHERE user_id=1 
UPDATE galleries set is_primary=1 WHERE id=4 

已經有一列名is_primary我需要設置只有1行is_primary=1其用戶ID 1但已經一行其中is_primary = 1 and user_id=1

我想更新is_primary=1其中id=4更新之前我需要設置所有is_primary=0其中user_id=1

我不想寫2次查詢更新。

如何編寫嵌套查詢更新我的記錄?

回答

1

您可以使用case-when東西作爲

update galleries 
set is_primary = 
case 
    when id=4 then 1 else 0 
end 
where user_id = 1 ; 
+0

感謝@Abhik :) – Chinmay235