0

特定の行が order 句の一部で返す select の行位置を返すために、この部分を完成させました。

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;

また、残りの列とその位置を返したいと思います。INNER JOINだと思いますが、構文がわかりません。

4

2 に答える 2

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;
于 2013-08-04T15:32:25.343 に答える
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;
于 2013-08-04T15:40:17.903 に答える