如何更新所选列表中的一个var并将其他值设置为零?

时间:2012-08-30 04:49:14

标签: mysql

我从post表中获取了此查询中的ID(要更新的行),这些ID作为grade table中的行,我想将一个var设置为1,将此数组中的其他ID设置为0,并保留等级表中的休息行保持不变:

SELECT ID FROM posts
WHERE post_parent = ''
AND post_status IN ( '')
AND post_type = ''

我想学习如何更新成绩表,如上所述。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用此解决方案:

UPDATE grade g
JOIN   post p ON g.id          = p.id
             AND p.post_parent = $parent_id
             AND p.post_status = $post_status
             AND p.post_type   = $post_type
SET    g.grade = CASE WHEN g.id = $id THEN 1 ELSE 0 END