我试图更新表中的多个列,这些列在单个查询中都需要不同的where子句。我在sql上并不令人惊讶,并且很难在谷歌上找到帮助。我试图实现这样的目标
UPDATE $table
SET meta_value = 'john',
meta_value = 'v1234'
WHERE meta_key = 'name' AND post_id=$post_id,
meta_key = 'trak' AND post_id=$post_id"
这个想法是第一个SET匹配第一个WHERE,第二个SET匹配第二个WHERE等。理想情况下,id可以执行其中的许多操作。任何想法我怎么能做到这一点?
答案 0 :(得分:3)
Update $table
set meta_value = CASE WHEN meta_key = 'name' then 'john'
WHEN meta_key = 'trak' then 'v1234' end
where post_Id = $post_ID
答案 1 :(得分:0)
UPDATE $table
SET meta_value = IF(meta_key='name','john','v1234')
WHERE post_id=$post_id AND
meta_key IN ('trak','name')