嵌套更新的MySQL查询

时间:2015-06-01 08:59:55

标签: mysql

表格 - galleries

+----+----------+------------+----------+
| 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 {/ 1}}。{/ 1}

我不想写2次查询更新。

如何编写嵌套查询来更新我的记录?

1 个答案:

答案 0 :(得分:1)

您可以使用case-when内容作为

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