php+mysql 判断记录位置

WBOY
풀어 주다: 2016-06-20 12:28:48
원래의
826명이 탐색했습니다.

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

我需要的是根据一个ID,算出这个ID是当前CATID下的第几条记录

比如 给的 ID 是 7 对应的Catid是1 。 SQL语句就是: 

SELECT * FROM `news_list` WHERE `TId` =1ORDER BY `order` ASC LIMIT x , 30
로그인 후 복사

因为根据order排序,而且数据比较多。

需要解决的问题是:
比如给个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
로그인 후 복사

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿