Mysql - 如何按用户对行进行编号? [复制]
Posted
技术标签:
【中文标题】Mysql - 如何按用户对行进行编号? [复制]【英文标题】:Mysql - How to number rows by user? [duplicate] 【发布时间】: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 他基本上想要以增量列作为第一列的结果数据 【参考方案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
也应该包括在内!以上是关于Mysql - 如何按用户对行进行编号? [复制]的主要内容,如果未能解决你的问题,请参考以下文章