【问题标题】:Mysql - How to number rows by user? [duplicate]Mysql - 如何按用户对行进行编号? [复制]
【发布时间】:2017-09-07 10:59:18
【问题描述】:

我有一个包含多个用户的数据库表和一个具有自动递增 ID 的列。

问题是当我创建一个userId = 2的新记录时,例如,它将这一行的id与表的最大id放在一起。

因此,查询select * from items where userId = 2 可以返回从 1 开始编号的行,即使第一条用户记录是 10。

例子:

  ID | ITEM    | USERID
 - 1 | Item 1  | 1
 - 2 | Item 2  | 2
 - 3 | Item 3  | 2
 - 4 | Item 4  | 1
 - 5 | Item 5  | 2

选择用户 ID = 2 我想要这个:

   ID | ITEM    | USERID |COUNT
 - 2  | Item 2  | 2      |1
 - 3  | Item 3  | 2      |2
 - 5  | Item 5  | 2      |3

谢谢

【问题讨论】:

  • 例如用户添加新商品,该商品的id就是商品总数+1,对吧?如果我们在此表中有 10 条记录,则此新记录为 11。当我通过用户 ID 进行查询时,我希望返回行数为 1 而不是 11。@cBroe
  • 他基本上想要以增量列作为第一列的结果数据

标签: mysql database


【解决方案1】:

您可以使用以下解决方案,使用variable

SET @c_num=0;
SELECT *, @c_num:=@c_num+1 AS 'COUNT' 
FROM table_name 
WHERE USERID = 2
ORDER BY id

【讨论】:

  • ORDER BY id ASC 也应该包括在内!
猜你喜欢
  • 2015-06-27
  • 1970-01-01
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多