设置为基于in子句的布尔值

hof1towb  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(382)

如何在单个查询中执行以下操作?

  1. UPDATE clients SET online=0 WHERE id NOT IN(4,5,8,10,12) AND id>=2 AND id<=15 AND parentId=123;
  2. UPDATE clients SET online=1 WHERE id IN(4,5,8,10,12) AND id>=2 AND id<=15 AND parentId=123;
hmtdttj4

hmtdttj41#

你可以用 CASE .. WHEN 声明:

  1. UPDATE clients
  2. SET online = CASE WHEN id IN(4,5,8,10,12)
  3. THEN 1
  4. ELSE 0
  5. END
  6. WHERE
  7. id BETWEEN 2 AND 15 AND parentId = 123;
  8. ``` `IN(..)` 是逻辑/比较函数。因此,您还可以执行以下操作(仅限mysql):

UPDATE clients
SET online = (id IN(4,5,8,10,12))
WHERE
id BETWEEN 2 AND 15 AND parentId = 123;

展开查看全部

相关问题