我试图更新某个行的某个列WHERE id是一定的值。问题是,列的数量/名称是可变的,它们各自的ID也是可变的。
例如:
UPDATE table SET column1="hello" WHERE id = 5
UPDATE table SET column2="cucumber" WHERE id = 6
如何在PDO中执行单个mysql查询才能执行此操作? 我尝试的第一件事就是......
UPDATE table SET column1="hello", column4="bye" WHERE id IN(5, 6)
但是那个查询会更新那些行中找到这些ID的列的BOTH,并且这不是我想要的。是否只能通过查询进行此查询?
请记住,SET之后的参数是可变的,因此要更新的列,它们的值以及它们各自的id也是可变的。 一个你可以纯粹绑定值的解决方案会很棒,但是如果我必须使用转义变量构建查询字符串,那么也可以。 谢谢。
答案 0 :(得分:0)
你可以这样做
UPDATE table t1 JOIN table t2
ON t1.id= 5 AND t2.id= 6
SET t1.column1= 'hello',
t2.column2 = 'cucumber';
或者如果您想在单个列上执行此操作
UPDATE table
SET column2 = CASE id
WHEN 5 THEN 'hello'
WHEN 6 THEN ''
END
WHERE id IN(5, 6);