我想将这两个查询链接在一起,而不是在不同的时间执行它们。
UPDATE `table` SET `column_one` = @value WHERE `column_one_key` = @key LIMIT 1;
以及此查询;
UPDATE `table` SET `column_two` = @value WHERE `column_two_key` = @key LIMIT 1;
这样的东西似乎无法让它发挥作用
UPDATE `table` (SET `column_one` = @value WHERE `column_one_key` = @key) || (SET `column_two` = @value WHERE `column_two_key` = @key) LIMIT 1;
一些其他信息
column_one_key和column_two_key永远不会相同,这就是您可以使用OR的原因。
答案 0 :(得分:2)
如果您不需要limit
(即每个键一个匹配),您可以执行以下操作:
UPDATE `table`
SET column_one = (CASE WHEN @key = column_one_key THEN @value ELSE column_one END),
column_two = (CASE WHEN @key = column_two_key THEN @value ELSE column_two END)
WHERE @key IN (column_one_key, column_two_key);
我认为两个更新更简单。而且,如果你确实需要limit
,那么两个更新肯定是一种更简单的方法。
答案 1 :(得分:-1)
尝试这样的事情:
UPDATE `table` SET `column_one` = @value, `column_two` = @value WHERE `column_one_key` = @key AND `column_two_key` = @key LIMIT 1;