我有一个排名表,其中我拥有所有玩家的排名。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