-2

如何在 My sql 中检索特定 id 的第一条插入记录

例如 ID 102 有三个记录,我必须检索第一个插入的记录

表名:

掌握

列和数据:

auto_id #### report_id ####slabs_remaining


  • 1-------------1-------------- --55
  • 2----------------------1-------------- --54
  • 3-------------------------1-------------- --53
  • 4-------------------------2-------------- --100
  • 5----------------------2-------------- --99
  • 6------------------------1-------------- --52
  • 7-------------------------1-------------- --51
  • 8----------------------3-------------- --200
  • 9-------------------------3-------------- --199

现在从上面的数据如何检索第一个插入的 report_id = 2

4

3 回答 3

2

使用MINGROUP 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 ║
╚══════════════╩═════════╝
于 2013-01-23T15:01:36.190 回答
0

看看这个,这里我们使用变量并假设你只有particularid和其他列。在没有看到您的表格结构的情况下说仍然很模棱两可..

SQLFIDDLE 演示

桌子:

| 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 |
于 2013-01-23T15:19:52.143 回答
0

您在查询中使用 ORDER BY the-id-or-age-of-record和 LIMIT 1 的组合...

于 2013-01-23T15:01:03.660 回答