如果我想设计一个像书一样的表,那么这本书有很多章节,章节可以通过其他字段排序,例如created_time
id | chapter_name
1 | aa
2 | cc
3 | dd
我可以订购这些记录输出,如:
aa,cc,dd
在本书的章节中有太多章节,如果作者想在现有章节之间插入章节
在这种情况下有两种混淆:
bb
输出,如:aa,bb,cc,dd
dd
输出,如:aa,dd,cc
非常感谢,如果我在开始时想错了,请指出
答案 0 :(得分:0)
您必须将order_id
更改为浮点值,以便插入/更新为1.5。或者你需要使用更大的数字空间,如1000,2000,3000,所以你可以在两者之间放置条目,例如1500。
如果您想要整数编号,可以使用order-by列生成row_number
等动态排序,例如
SELECT chapter_name, row_number() OVER (ORDER BY order_id) FROM my_table;
或者,您是否可能对数据库表的工作方式感到困惑,并期望它维持一个没有ORDER BY
子句的排序?因为他们不会那样工作。除非您提供ORDER BY
,否则数据库可以按任何顺序返回行。
答案 1 :(得分:0)
如果您只想对值进行硬编码
第一个查询
更新table_name 设置id = 4和order_id = 4 名称=' dd';
更新table_name 设置id = 3和order_id = 3 名称=' cc';
插入(id,name,order_id)值(2,' bb',2);
对于第二个查询
更新table_name 设置id = 2和order_id = 2 名称=' dd';
(第二个查询是在他们的名字中没有bb记录的时候),只需按order_id订购