我已完成此部分,以返回特定行将在订单子句的一部分中返回的选择中的行位置。
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;
我还希望将其余列与其位置一起返回。我认为这是一个内部联接,但我无法弄清楚语法。
答案 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;