2015-06-01 47 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