我有桌子:
+----+--------+----------+
| id | doc_id | next_req |
+----+--------+----------+
| 1 | 1 | 4 |
| 2 | 1 | 3 |
| 3 | 1 | 0 |
| 4 | 1 | 2 |
+----+--------+----------+
Run Code Online (Sandbox Code Playgroud)
id - auto incerement主键.
nex_req - 表示记录的顺序.(next_req = 记录的id)
如何构建SQL查询以此顺序获取记录:
+----+--------+----------+
| id | doc_id | next_req |
+----+--------+----------+
| 1 | 1 | 4 |
| 4 | 1 | 2 |
| 2 | 1 | …Run Code Online (Sandbox Code Playgroud) 我有一个需要按特定顺序显示的项目表,但是该顺序可以更改。可以在开头,结尾或中间添加项目,并且可以重新排列项目。如何设置表以易于修改但也可以通过单个查询按顺序获取列表的方式跟踪该顺序?
例如,我可以有一个“ NEXT_ID”列来完成链接列表样式,但是那我将如何运行SELECT查询以按NEXT_ID链的顺序获取行呢?
提前为超级显而易见的解决方案道歉,我可能会丢失。
我正在制作一个应用程序,多个用户可以在其他评论之上或之下发表评论 这不是线程类型的结构.这更像是在Word文档上进行协作.我无法设计这些条目的方法.
使用mySQL和PHP,按输入时间排序不起作用,也不按评论位置排序,因为如果用户在其他评论之间发布,则位置会发生变化.我不想为每个新条目重新排序评论位置(如果有数千个条目和数十个用户做同样的事情会怎么样).
设计这个的最佳方法是什么?
我正在使用一个实现了单链表(id,父级)的表。这个实现一直运行良好,只是最近性能变得难以忍受,因为我的列表变得很长并且我一直在单独查询节点。
\n\n我发现了一个很有前途的博客,介绍如何在单个查询中对此进行查询。http://explainextend.com/2009/03/25/sorting-lists/
\n\nSELECT @r AS _parent,\n @r := (\n SELECT id\n FROM t_list\n WHERE parent = _parent\n ) AS id\nFROM (\n SELECT @r := 0\n ) vars,\n t_list\nRun Code Online (Sandbox Code Playgroud)\n\n唯一的问题是我对 MySQL 不够了解,甚至无法使用它。我的问题与我在博客评论中发布的问题相同。如何设置从哪个记录/节点开始?就像我想从示例表中的 id 3 开始一样。它如何知道何时到达列表末尾并应该停止?我\xe2\x80\x99已经尝试过它,它只是永远运行(可能是由于与前一个问题相关的使用不当)。
\n\n谢谢。
\n我使用的是MySQL,我没有办法做到这一点.
我有一个有位置的表field,我需要跟踪其值为1到10,000.
假设我在5000位置的中间插入一条记录.因此需要将位置5000到10,000更新到新位置; 老5000变成5001,5002变成5003 ......
当添加1个单一位置时,是否有一种很好的方法来实现这一点而不会影响如此多的记录?
从第1位添加是最差的.