ホームページ >バックエンド開発 >PHPチュートリアル >php+mysqlはレコードの場所を決定します
ID Catid Order
1 1 1
2 1 5
3 2 3
4 1 2
5 2 15
7 1 11
8 1 9
...
152 1 155
153 1 143
必要なのは、現在の CATID の下でこの ID が
たとえば、指定された ID は 7 で、対応する Catid は 1 です。 SQL ステートメントは次のとおりです。
SELECT * FROM `news_list` WHERE `TId` =1ORDER BY `order` ASC LIMIT x , 30順序に従ってソートされており、大量のデータがあるためです。
解決する必要がある問題は次のとおりです。
たとえば、ID=7 とすると、ID が属する Catid に基づいて、取得された結果内でのこの ID の位置を計算します。 (7 は 4 番目の記録です)
ps: データ量が多く、条件に合うレコードを全て読み出して判定することはできません。
私の答えは次のとおりです:
set @i :=0;SELECT @i :=@i+1 as num,news_list.* FROM `news_list` WHERE `catid` =1ORDER BY `order` ASC LIMIT 0 , 30