2017-01-13 1 views
1

に一致するクエリからの行数を取得します:のMySql:私は複雑な選択等を有していてidが

select id from table 
    left join... 
    left join... (a lot of joins) 
where ... (a lot of ANDs and ORs) 
order by... (a lot of orders) 

と同様に、私は結果を取得しています:私が所属IDをお持ち

1234 
5565 
7212 
2212 
etc. 

結果セットのどの行がidと一致するかを知りたい(行0から始めて、これは私の例では行2になります)。

今、私はすべてのデータを読み、PHPでそれを比較するが、私と2の結果は、実際には7212.

を入力するときのために、私がしたいことをしたSQL文がある場合、私は思っていましたよ以前のIDと次のID(行1と行3 = 5565と2212)を取得します。

答えて

1

あなたは数行選択することができます:それはここで聞かれる質問が重複する可能性だ

select @rownum:[email protected]+1 No, foo, bar from table, (SELECT @rownum:=0) r; 

を:

SELECT 
    @i:[email protected]+1 as index, 
    id 
FROM table, (SELECT @i:= 0) AS i 
    LEFT JOIN... 
    LEFT JOIN...(a lot of joins) 
WHERE ... (a lot of ANDs and ORs) 
ORDER BY... (a lot of orders) 

与える:How to show sequential number in MySQL query result

+0

も同様に、ありがとう! – Werner

1

は、それぞれの選択行のAUTO_INCREMENTインデックスを追加します。あなた:

index id 
1  1234 
2  5565 
3  7212 
4  2212 
+0

作品、ありがとうございます。 – Werner

+0

あなたは何か動作していないと言った? –

関連する問題