Php 如何升级mysql中的下一条/上一条记录
Php 如何升级mysql中的下一条/上一条记录,php,mysql,Php,Mysql,如果我使用每个链接前面的+和-按钮来升级和降级它们,然后按orderID重新排列菜单顺序,会怎么样?绝对不需要执行这两个选择。 您可以执行以下操作: 更新表集字段='some value',其中id=$id+1 更新表集字段='some value',其中id=$id-1 好了:)如果你真的想在一个查询中完成,你可以使用一个子查询来找出你需要更新的ID。问题在于,出于明显的数据完整性原因,MySQL无法更新您试图子查询的同一个表。因此,您需要使用一些变通方法,例如在子查询中创建临时表 UPDAT
如果我使用每个链接前面的+和-按钮来升级和降级它们,然后按orderID重新排列菜单顺序,会怎么样?绝对不需要执行这两个选择。 您可以执行以下操作: 更新表集字段='some value',其中id=$id+1 更新表集字段='some value',其中id=$id-1
好了:)如果你真的想在一个查询中完成,你可以使用一个子查询来找出你需要更新的ID。问题在于,出于明显的数据完整性原因,MySQL无法更新您试图子查询的同一个表。因此,您需要使用一些变通方法,例如在子查询中创建临时表
UPDATE table AS t
SET [...]
WHERE t.`id` = (select * FROM (select `id` from table where `id` > $id order by `id` asc limit 1) AS sq)
使用您已经知道的查询来检索要更新的行的ID,使用刚才检索到的两个ID发出两个
update
查询,其中ID=X。哪一部分是问题?假设连续ID,这是一个非常严格的条件。
ID Links orderID
14 Google.com 1
15 Yahoo.com 2
20 gmail.com 3
25 facebook.com 4
UPDATE table AS t
SET [...]
WHERE t.`id` = (select * FROM (select `id` from table where `id` > $id order by `id` asc limit 1) AS sq)