代码之家  ›  专栏  ›  技术社区  ›  cypher

MySQL行号

  •  3
  • cypher  · 技术社区  · 16 年前

    假设我有一个MySQL查询,例如:

    SELECT id, name, surname FROM employees ORDER BY id
    

    结果是:

    id    name    surname
     1     Peter   Smith
     2     John    Banjo
    ...
     1384  Will    Levenstein
    

    虽然这是一个有序查询,但我始终可以假设(只要不更改表) John Banjo 将获得第二名。

    如果我的问题是

    SELECT id, name, surname FROM employees WHERE name = 'John' AND surname = 'Banjo'
    

    我能得到第一个查询中的行号吗?

    1 回复  |  直到 9 年前
        1
  •  2
  •   Michael Pakhantsov    16 年前
     SELECT x.id, x.name, x.surname, x.rownum
     FROM (
          SELECT @rownum:=@rownum+1 rownum, t.*
          FROM (SELECT @rownum:=0) r, employees t
          ORDER BY Id
     ) x
     WHERE x.name = 'John' 
     AND x.surname = 'Banjo'
    
    推荐文章