mysql - 如何更新mysql表中存储的行顺序?

标签 mysql sql

alt text http://i.imagehost.org/0911/kaip_padaryti_valdymas_copy.png

我想更新订单,以便 GALLERY位于 PRODUCTS 之前.

执行此操作的查询应该是什么?

抱歉我的英语不好。

最佳答案

假设请求发送了 order 的当前值以及用户单击的行的操作类型(向上/向下)。对于您的示例,它将类似于 script.php?oid=2&action=up。 然后,您可以简单地将 order=$oid 和 order=$oid-1 的行的值交换为 action=up,将 order=$oid 和 order=$oid+1 的行的值交换为 action="down"。

例如

UPDATE
  foo as f1, foo as f2
SET
  f1.`order`=1,
  f2.`order`=2
WHERE
  f1.`order`=2
  AND f2.`order`=1

关于mysql - 如何更新mysql表中存储的行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1976280/

相关文章:

Mysql根据表模式查找用户

mysql - 如果数据为空,则按日期分组 Mysql 返回 0

MySql 意外停止

python - peewee mysql SSL : CERTIFICATE_VERIFY_FAILED

mysql - TSQL - 求和和选择

mysql - 将现有数据库连接到 mysql

mysql - SELECT BETWEEN 日期不适用于一年 - MySQL

mysql - 如何获取每个月*at*的注册用户总数?

mysql - 转换成 View 时sql参数错误

sql - 为什么同一个 try catch block 有两个不同的结果