您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySQL视图中的行排名

MySQL视图中的行排名

采用:

SELECT t.id,
       t.variety,
       (SELECT COUNT(*) FROM TABLE WHERE id < t.id) +1 AS NUM
  FROM TABLE t

这不是理想的方式,因为将对返回的每一行执行num值查询。更好的主意是创建一个NUMBERS表,其中的一列包含一个一个开始的数字,然后递增到一个非常大的数字,然后NUMBERS以类似于下面的变量示例的方式联接和引用该表。

您可以定义一个变量以获得伪行号功能,因为MysqL没有任何排名函数

SELECT t.id,
       t.variety,
       @rownum := @rownum + 1 AS num
  FROM TABLE t,
       (SELECT @rownum := 0) r

如果这样做,将会收到1351错误,因为由于design您无法在视图中使用变量。该错误/功能的行为记录在这里

MySQL 2022/1/1 18:20:29 有556人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶