在mysql中插入和求助数据

时间:2014-04-29 06:26:23

标签: php mysql

我在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实现它的最佳解决方案是什么?当记录数量增加时,我应该如何更改表格结构以获得最佳性能。

1 个答案:

答案 0 :(得分:0)

你应该让mysql决定如何存储信息并对其进行排序:

SET @rank=0;
SELECT @rank:=@rank+1 AS rank, subject, body, order_no

希望有所帮助。