用户确定使用php mysql排序或排序

时间:2012-10-11 02:43:54

标签: mysql sorting

将订单分配给mysql表行的最佳方法是什么?如果我有1到5行,我想删除4,那我怎么能把5新4?如果我将make 3设为新的1,我需要为每个其他行添加1。可能有1行或2行或100行。

是否有比手动编程每个意外情况更简单的方法?

提前致谢。

附加: 我有一个界面,我在其中添加包供客户查看。它们会按ID自动按升序排序。我可以按价格,包装名称或其他方式对它们进行重新排序,但我想不时地根据自己的喜好任意订购它们。

再次感谢。

3 个答案:

答案 0 :(得分:3)

假设您的数据库中有一个唯一的order_column列:

在x位置添加新行:

  • 锁定表格
  • 更新位置> = x并添加1
  • 的所有行
  • 然后在位置x
  • 处插入新行
  • 解锁表格

交换位置x和y:

  • UPDATE table SET x=(@temp:=x), x = y, y = @temp;

(source)

删除x位置的行:

  • 锁定表格
  • 删除位置x
  • 的行
  • 更新位置>的所有行x和减1
  • 解锁表格

显示数据:
ORDER BY列只需order_column

答案 1 :(得分:1)

订购的基本方法通常相当于按字母顺序或数字顺序排列特定列。或者,如果无法根据您拥有的数据创建所需的订单,则需要添加列以进行排序,然后创建一个接口以使用数据填充该列。听起来你需要稍后再做。

答案 2 :(得分:0)

除非我完全误解了这个问题:

保持表格不变,只需使用ORDER BY确定SELECT行时的排序。