【发布时间】:2023-10-10 23:27:01
【问题描述】:
我在 Linux 下使用 MySQL 5.6。
我有一个表格让用户输入一个起始编号和一个终止编号。
然后,有一个视图可以从另一个表中选择一些记录,这些记录的帐号介于 from-number 和 to-number 之间。
最难的问题是,用户希望视图中的每条记录都有一个序列号,从 1 开始。例如,如果视图显示 37 行,则序列号应该从 1、2、3、...直到37岁,没有跳号。视图的排序顺序并不重要。
我知道 MySQL 表中有自增列。但是,就我而言,我必须使用 VIEW,而不是表格。
有人知道怎么做吗?
顺便说一句,我必须使用 VIEW 来执行此操作,而不是 SELECT 语句。用户不知道如何输入 SELECT 语句,但他们知道如何点击视图查看视图。
【问题讨论】:
-
该序列将用于什么?您不能将其用于任何查询,那么它的意义何在?
-
@Mjh 有无数种方法可以在查询中使用序列或 ROW_NUMBER,这就是为什么大多数数据库已经有了排名功能
-
@PanagiotisKanavos 生成这样的序列,不引用视图中任何表的任何主键是绝对没用的。我知道你认为你是对的,但有一种简单的方法可以验证我所说的 - 使用它。尤其是在稍大的桌子上。我已经知道结果,但请随意自娱自乐。此外,不是相关 RDBMS 的标签。
-
@Mjh 我知道,我一直使用序列和行号,这就是为什么我说它非常有用。无论是对结果进行排名、分页还是跨表序列和 ROW_NUMBER 生成唯一 ID 都非常有用。无论如何,it's possible but slow even in views
标签: mysql