Mysql - 如何按用户对行进行编号?

时间:2017-09-07 10:59:18

标签: mysql database

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

问题是当我创建一个userId = 2的新记录时,例如,它将该行的id设置为表的最大id。

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

示例:

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

选择userid = 2我希望如此:

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

谢谢

1 个答案:

答案 0 :(得分:3)

您可以使用variable

使用以下解决方案
SET @c_num=0;
SELECT *, @c_num:=@c_num+1 AS 'COUNT' 
FROM table_name 
WHERE USERID = 2
ORDER BY id