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)