你的數(shù)據(jù)庫設(shè)計(jì)不合理,當(dāng)你有新的game的時(shí)候又新建一張表,這樣程序會變得非常復(fù)雜,正確的方法應(yīng)該是只建立一個game表,字段有ID,GID,UID,money,其中GID為游戲的編碼(1、2、3、……),如果是這樣表結(jié)構(gòu),SQL你自己已經(jīng)會寫了。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、龍華網(wǎng)絡(luò)推廣、微信小程序開發(fā)、龍華網(wǎng)絡(luò)營銷、龍華企業(yè)策劃、龍華品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供龍華建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:chinadenli.net
對于你現(xiàn)在這樣麻煩的數(shù)據(jù)庫結(jié)構(gòu),可以利用視圖來實(shí)現(xiàn),建立一個視圖:
CREATE VIEW game AS
select '1' GID,UID,money from game1 UNION
select '2' GID,UID,money from game2 UNION
select '3' GID,UID,money from game3
這樣,你需要統(tǒng)計(jì)某用戶UID=uid的money總和,可以使用下面的SQL:
SELECT SUM(money) FROM game WHERE UID='uid'
你需要統(tǒng)計(jì)某用戶sname的money總和,可以使用下面的SQL:
SELECT SUM(money) FROM game WHERE UID IN (select UID from user WHERE sname='sname')
有了這個VIEW排名的SQL應(yīng)該你知道怎么做了。
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 * FROM table_name ORDER BY `score` DESC
就是從表中按score從高到低排序后取出的結(jié)果
這個如果想要性能的話,就用下面的sql語句實(shí)現(xiàn):
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語句有疑問,不明白,可以使用一個比較耗費(fèi)性能的方法:
select userid from record
執(zhí)行這條語句,獲得一個數(shù)組$res
遍歷前設(shè)置一個記錄排序的標(biāo)識 $seq=1;
for(...){
$userid=$res['userid'];//把第seq 個位置的學(xué)號拿出來,跟想要的學(xué)號比
if($userid==2694){
break;
}
$seq++;
}
//如果 這個排序標(biāo)識比結(jié)果集數(shù)組大小還大,說明沒這個userid的記錄。
$seq就是排序
我沒有測試 你可以自己試一下
應(yīng)該把表B的score放到試卷表A ,
不然只能輸出
張三試卷1:第1名
李四試卷1:第2名
王五試卷1:第3名
陳六試卷1:第4名
這樣子
?php
mysql_connect('localhost','root','123');
mysql_select_db('lx');
mysql_query("SET?CHARACTER?SET?utf8");
mysql_query("SET?NAMES?utf8");
$arr?=?mysql_query("select?username,s?from?biaob?where?p_id?=?'1'?order?by?score?desc?");
$n?=?1;
while($a?=?mysql_fetch_array($arr)){
echo?'br'.$a['username'].'試卷1:第'.$n.'名';
$n++;
}
?
select id,integral,addtime from cos_member_vip order by integral desc,addtime asc--如果需要生成以積分為最高優(yōu)先,其次以時(shí)間為從高到低為條件生成個排名字段,可用--ROW_NUMBER() OVER ()函數(shù)
標(biāo)題名稱:mysql排名怎么寫 mysql排名語句怎么寫
文章出自:http://chinadenli.net/article36/hjegsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、ChatGPT、建站公司、搜索引擎優(yōu)化、微信小程序、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)