$database->query("UPDATE main_navigation SET id = ? WHERE id = ?", array($intTempIndex, $intNewIndex));
$database->query("UPDATE main_navigation SET id = ? WHERE id = ?", array($intNewIndex, $intOldIndex));
$database->query("UPDATE main_navigation SET id = ? WHERE id = ?", array($intOldIndex, $intTempIndex));
我在想出一个更短的方法然后使用 3 个查询来交换数据库中的 ID 时遇到了一些麻烦。是否可以缩短更多?如果是这样,我可以看一个例子吗?
注意:$database->query 是我的自定义函数。
最佳答案
update main_navigation
set id = case
when i1 then i2
when i2 then i1
end
where id in (i1, i2);
(编辑以添加 where 子句以便不更新所有行 -- meh)
关于php - 我怎样才能缩短我的 mysql 查询以允许我交换我的 mysql 数据库中的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8563848/