表格 - 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次查询更新。
如何编写嵌套查询来更新我的记录?
答案 0 :(得分:1)
您可以使用case-when
内容作为
update galleries
set is_primary =
case
when id=4 then 1 else 0
end
where user_id = 1 ;