我在db表中有一个enum('Y','N')
字段,其中有许多记录保持记录活动状态(Y
)或非活动状态(N
)。
一次只能激活一条记录。如果它处于活动状态,则显示所有记录及其状态,然后显示单词Active
,如果它处于非活动状态,则提供一个提交按钮以使其与每条记录一起激活。
现在我正在使用两个更新命令
update table_name set active="Y" where id=$id
update table_name set active="N" where id != $id
我的问题是: -
真的我需要两个更新命令来执行,还是他们的任何更新命令一次更新它们?
答案 0 :(得分:3)
你可以做到
UPDATE table_name
SET active =
CASE WHEN id = $id THEN "Y"
ELSE "N"
END
确认语法 - 我实际上没有尝试过代码。
答案 1 :(得分:3)
UPDATE table_name
SET active = IF(id = $id, 'Y', 'N')
WHERE (id = $id) OR (active = 'Y')
这将使用id
和active
上的索引。