在MySQL中创建链表或类似队列?

NCh*_*ase 6 mysql queue linked-list

我有一个需要按特定顺序显示的项目表,但是该顺序可以更改。可以在开头,结尾或中间添加项目,并且可以重新排列项目。如何设置表以易于修改但也可以通过单个查询按顺序获取列表的方式跟踪该顺序?

例如,我可以有一个“ NEXT_ID”列来完成链接列表样式,但是那我将如何运行SELECT查询以按NEXT_ID链的顺序获取行呢?

提前为超级显而易见的解决方案道歉,我可能会丢失。

rlb*_*usa 5

我经常遇到这个问题,我用一个简单的解决方案解决了它:一个名为“排序顺序”(或“显示顺序”,无论真正让您的船漂浮的什么)的额外列。这使我能够灵活地使用自动生成、自动递增的 ID 列并具有特殊的预定义排序。

就我而言,我需要它们按字母顺序从数据库中出来,除了“其他”和“N/A”等某些项目始终位于最后。

ProdID ProdText SortOrder
2      "Anchovies"    1
3      "Rivet"        2
4      "N/A"          4
5      "Other"        3

SELECT ProdID, ProdText ORDER BY Sort Order
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我希望不需要为单个移动或插入更新所有/多个记录。但根据下面的答案,MySQL 中可能不存在这一点。 (2认同)