我有一个包含多个用户的数据库表和一个具有自动增量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
谢谢
答案 0 :(得分:3)
您可以使用variable:
使用以下解决方案SET @c_num=0;
SELECT *, @c_num:=@c_num+1 AS 'COUNT'
FROM table_name
WHERE USERID = 2
ORDER BY id