我有一個排名表,其中我擁有所有玩家的排名。Mysql Select查詢 - 無法限制記錄
id | rank | playername | is_available | ranking_name | ranking_id
-------------------------------------------------------------------
1 | 1 | testname1 | 1 | australia open | 1
2 | 2 | testname2 | 1 | australia open | 1
3 | 3 | testname3 | 0 | australia open | 1
4 | 4 | testname4 | 1 | australia open | 1
5 | 1 | testname5 | 1 | japan open | 2
這個表是巨大的,並且對於每個ranking_id,可以有超過500個玩家。 現在,每位球員都可以向上級球員挑戰比賽數量x%。這個x由superadmin設置。如果x = 10,玩家「測試名稱4」可以挑戰(排名_id * 10/100中的玩家數量)= 4 * 10/100 = 0.4回合爲1,因此測試名稱4可以挑戰位於他之上的一個玩家。但他的上面的球員「testname3」不可用。所以他應該得到下一個可用的球員。我希望輸出像
//testname4 can challenge below players
id | rank | playername | status |
--------------------------------------
2 | 2 | testname2 | available |
3 | 3 | testname3 | not available |
我做了什麼:
//testname4 wants to challenge. So i know his rank and other information
$selectSql = mysql_query("SELECT * from rankingTable where ranking_id = 1 AND rank < 4");
這是給我的 「testname1」 記錄爲好。我怎麼能限制這個?而最大的問題是我需要以升序顯示排名。使用這裏的命令並不容易。
您是否需要另一個where子句,其中「is_available = 1」以及某人不可用? – TommyBs
如果我這樣做,我不會得到沒有的球員。我必須向他們展示他爲什麼被賦予額外的球員。他們可以是3名不可用的球員。所以他應該給予第四名球員高於他。 –
好吧,只是不是100%被問到的東西,所以我想我會clarufy – TommyBs