选择行位置和整行

时间:2013-08-04 15:28:07

标签: mysql

我已完成此部分,以返回特定行将在订单子句的一部分中返回的选择中的行位置。

SELECT 
    *
FROM
    (SELECT 
        @i:=@i + 1 n, id
    FROM
        1_packages, (SELECT @i:=0) q
    ORDER BY group_id , position , pack_description) j
WHERE
    id = 10;

我还希望将其余列与其位置一起返回。我认为这是一个内部联接,但我无法弄清楚语法。

2 个答案:

答案 0 :(得分:1)

只需在子查询中包含列:

SELECT t.*
FROM (SELECT t.*, @i:=@i + 1 as n
      FROM 1_packages t cross join
           (SELECT @i:=0) const
      ORDER BY group_id, position, pack_description
    ) t
WHERE id = 10;

答案 1 :(得分:0)

这是正确的语法。返回的行带有一个额外的列,使其处于选择位置。

SELECT 
    *
FROM
    (SELECT 
         *, @i:=@i + 1 n
    FROM
        1_packages, (SELECT @i:=0) q
    ORDER BY group_id , position , pack_description) j
WHERE
    id = 10;