我在MySQL数据库中保留了一些文章如下:
id subject body order_no
============================================
1 subject 1 body 1 1
2 subject 2 body 2 2
3 subject 3 body 3 3
4 subject 4 body 4 4
5 subject 5 body 5 5
文章正在使用订单号添加到表中。每次向表中添加新记录时,如果新记录具有已存在于数据库中的订单号,则应将其他记录向下移动。例如,我们有一条新记录如下:
id subject body order_no
============================================
6 subject 6 body 6 3
在这种情况下,我们应该得到以下结果:
id subject body order_no
============================================
1 subject 1 body 1 1
2 subject 2 body 2 2
3 subject 3 body 3 4
4 subject 4 body 4 5
5 subject 5 body 5 6
6 subject 6 body 6 3
必须考虑到记录可以随时删除或更新,但不应影响记录顺序,输出必须如上所示(“order_no”之间不应有任何差距)。
通过php和mysql实现它的最佳解决方案是什么?当记录数量增加时,我应该如何更改表格结构以获得最佳性能。
答案 0 :(得分:0)
你应该让mysql决定如何存储信息并对其进行排序:
SET @rank=0;
SELECT @rank:=@rank+1 AS rank, subject, body, order_no
希望有所帮助。