1

これが私のmysqlクエリです

SELECT network_mst.NetworkId,network_mst.NetworkName,network_mst.InternationalDBStatus,network_mst.Of fshoreDBStatus,network_mst.InterDBStatus,network_mst.IntraDBStatus 
FROM network_mst INNER JOIN carrier_network ON network_mst.NetworkId=carrier_network.NetworkId
INNER JOIN user_network ON network_mst.NetworkId=user_network.NetworkId WHERE UserId=1
AND carrier_network.CarrierId IN (1) GROUP BY network_mst.NetworkId ORDER BY  network_mst.NetworkName;

結果のデータは ここに画像の説明を入力

小さい画像で申し訳ありません。NetworkId というフィールドがあります。したがって、私の質問は、NetworkId 2 の行の行インデックスを見つける方法です。ここでの答えは、NetworkId 2 の行の行インデックスは 3 です。

4

1 に答える 1

0

これを試して:

SET @rownum = 0; 
Select *
FROM
(
   Select *,  (@rownum := @rownum+1) as rank
   FROM
   (
      -- Your current query here
   ) t
) sub WHERE rank = 3

このクエリnetword_id = 2は、3番目の行であるため、を含む行を返す必要があります。ORDER BYただし、ランキングの順序を制御するのは最も内側のクエリの句であるため、注意する必要があります。

于 2012-10-09T08:07:15.150 に答える