如何在My sql中检索特定id的第一个插入记录
例如,ID 102有三个记录,我必须检索第一个插入的记录
表名:
现在从上面的数据中如何检索第一个插入的report_id = 2
答案 0 :(得分:2)
使用MIN
和GROUP BY
子句
SELECT ParticularID, MIN(ID) AS FirstID
FROM tableName
GROUP BY ParticularID
示例数据
╔══════════════╦════╗
║ PARTICULARID ║ ID ║
╠══════════════╬════╣
║ 1 ║ 1 ║ << First ID
║ 1 ║ 2 ║
║ 1 ║ 3 ║
║ 2 ║ 4 ║ << First ID
║ 2 ║ 5 ║
║ 2 ║ 6 ║
║ 3 ║ 7 ║ << First ID
║ 3 ║ 8 ║
╚══════════════╩════╝
输出
╔══════════════╦═════════╗
║ PARTICULARID ║ FIRSTID ║
╠══════════════╬═════════╣
║ 1 ║ 1 ║
║ 2 ║ 4 ║
║ 3 ║ 7 ║
╚══════════════╩═════════╝
答案 1 :(得分:0)
您在查询中使用ORDER BY -id-or-age-of-record 和LIMIT 1的组合......
答案 2 :(得分:0)
看看这个,我们在这里使用变量并假设你只有particularid
和其他列。如果没有看到你的桌面结构,说它仍然很模糊..
表:
| PARTICULARID | COL2 |
-----------------------
| 1 | a |
| 1 | d |
| 1 | y |
| 2 | p |
| 2 | c |
| 2 | d |
| 3 | e |
| 3 | f |
set @vid:=0;
set @r:=0;
select particularID, col2
from (
SELECT @r:=(case when @vid = ParticularID
then @i + 1 else 1 end) as row,
@vID:=ParticularID, ParticularID, col2
FROM tableName
ORDER BY ParticularID) x
where x.row is not null
;
| PARTICULARID | COL2 |
-----------------------
| 1 | a |
| 2 | p |
| 3 | e |