【发布时间】:2012-08-04 20:15:37
【问题描述】:
我有一张这样的桌子
ItemsTable
item_id, cat_id, sort
----------------------
1 1 1
20 1 2
15 1 3
12 1 4
11 1 5
....
1521 1 1991
在我的程序中,每次显示页面时,它都会根据排序号拉下一个项目。所以,假设我刚刚显示 sort = 2,下一次页面将显示 item sort = 3(也许 sort 是一个坏名字)。
我想要做的是,一旦我拉出最后一个项目(排序 = 1991),我想重新更新该表中的项目并重新分配新的排序顺序。
像这样:
ItemsTable
item_id, cat_id, sort
----------------------
35 1 1
7 1 2
2 1 3
1521 1 4
700 1 5
....
5 1 1991
现在我的想法是我必须编写一个 SELECTS 记录的脚本,其中 cat_id = 1 对结果进行随机排序,然后我必须在 PHP 中创建一个循环来更新数据库 1001 次。在我看来,这似乎效率不高。
你们能提供更好的选择吗?使用 MySQL 最有效的方法是什么?
【问题讨论】:
-
您无法根据选择数据的时间自动重新排序。您可以编写代码来进行重新排序,但您的应用需要在适当的时间触发该代码。
-
正确。我已经设置了所有这些。我遇到的问题是触发的查询随机重新分配排序顺序,但保持该类别的顺序。