我尝试通过发送SQL请求获得有限的输出结果:
但它受到玩家数量的限制,但我需要按地图数限制。
我无法做到,无法在StackOverflow中找到示例
public static function GetWarcraftAccountsWithMapCodeLimited( $startid, $count )
{
//XenForo DB
$db = \XF::db();
//Send request
$waracc = $db->fetchAll("SELECT acct_username, acct_username_forum, acct_playingmap FROM wc_BNET WHERE acct_playingmap <> '' LIMIT ?, ?",[$startid, $count]);
// return result
return $waracc;
}
示例数据:
ID acct_username acct_username_forum acct_playingmap
1 Nickname1 UserName1 TestMap1
2 Nickname2 UserName2 WelcomeMap2
3 Nickname3 UserName3 NewMap3
4 Nickname4 UserName4 TestMap1
5 Nickname5 UserName5 TestMap1
6 Nickname6 UserName6 AndMap4
7 Nickname7 UserName7 NewMap5
8 Nickname8 UserName8 NewMap66
9 Nickname9 UserName9 NewMap777
10 Nickname10 UserName10 NewMap88
11 Nickname11 UserName11 NewMap999
12 Nickname12 UserName12 NewMap10
13 Nickname13 UserName13 NewMap111
在我的SQL响应结果中受行ID计数限制
但我需要受到acct_playingmap
的限制示例需要的结果受到2张地图的限制:
acct_username acct_username_forum acct_playingmap
Nickname1 Username1 TestMap1
Nickname2 Username2 WelcomeMap2
Nickname4 Username4 TestMap1
Nickname5 Username5 TestMap1
如何受限于唯一的acct_playingmap计数?
的信息:
可以是10000名玩家,玩1000张地图,例如我需要结果限制10张地图,所有玩家都可以玩这张地图!
(I need to get the result limited to unique number of acct_playingmap values.)
加入
需要首先需要的唯一地图,然后通过此值获得所有玩家? 但如果地图大于100,我就无法做到吗? (可以是非常大的请求大小)
答案 0 :(得分:0)
SELECT acct_username, acct_username_forum, acct_playingmap FROM wc_BNET_TEST WHERE acct_playingmap IN
(
SELECT * FROM
(
SELECT DISTINCT acct_playingmap FROM wc_BNET_TEST WHERE acct_playingmap <> '' LIMIT 4
) AS FUCC_MYSQL
)
这个有效!感谢D Ie寻求帮助。