這個如果想要性能的話,就用下面的sql語句實現(xiàn):
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供汾陽網(wǎng)站建設(shè)、汾陽做網(wǎng)站、汾陽網(wǎng)站設(shè)計、汾陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、汾陽企業(yè)網(wǎng)站模板建站服務(wù),10多年汾陽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
select orderNo from (select (@rowNum:=@rowNum+1) orderNo , userid ,pid from TABLE,(Select (@rowNum :=0) ) b )t where t.userid=2694
然后php獲得這條結(jié)果數(shù)組,取第一個元素即是排序
如果對這個sql語句有疑問,不明白,可以使用一個比較耗費性能的方法:
select userid from record
執(zhí)行這條語句,獲得一個數(shù)組$res
遍歷前設(shè)置一個記錄排序的標識 $seq=1;
for(...){
$userid=$res['userid'];//把第seq 個位置的學(xué)號拿出來,跟想要的學(xué)號比
if($userid==2694){
break;
}
$seq++;
}
//如果 這個排序標識比結(jié)果集數(shù)組大小還大,說明沒這個userid的記錄。
$seq就是排序
我沒有測試 你可以自己試一下
SELECT * FROM table_name AS a ORDER BY a.`產(chǎn)業(yè)`,a.`市場份額` DESC;
表數(shù)據(jù):
海信 冰箱 0.20 1
海信 冷柜 0.20 2
海爾 冰箱 0.19 3
海爾 冷柜 0.19 4
美的 冰箱 0.18 5
美的 冷柜 0.18 6
查詢結(jié)果:
海信 冰箱 0.20 1
海爾 冰箱 0.19 3
美的 冰箱 0.18 5
海信 冷柜 0.20 2
海爾 冷柜 0.19 4
美的 冷柜 0.18 6
望采納。
select id,integral,addtime from cos_member_vip order by integral desc,addtime asc--如果需要生成以積分為最高優(yōu)先,其次以時間為從高到低為條件生成個排名字段,可用--ROW_NUMBER() OVER ()函數(shù)
按照并列且占位。
mysql按照并列且占位的規(guī)則來排名,例如96分應(yīng)該是第四名,95分是第6名。
mysql排名并列即相同的值,相同的值保留重復(fù)名次,遇到下一個不同的值,跳躍到總共的排名。