我有一个带有赛事ID的数据库。现在,我希望每1蒲式耳(id)中不超过4支队伍。因此,如果在poule_id 1中有4个团队,则需要将其放在poule_id 2中,如果在poule_id 2中有4个团队,则需要转到poule_id 3等。
poule table
到目前为止,我只选择了poule_id。
$sql = "SELECT poule_id FROM `tbl_teams` WHERE poule_id IS NOT NULL";
$stmt = $this->db->prepare($sql);
$stmt->execute();
$teams = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<pre>";
var_dump($teams);
这让我:
array(9) {
[0]=>
array(1) {
["poule_id"]=>
string(1) "1"
}
[1]=>
array(1) {
["poule_id"]=>
string(1) "1"
}
[2]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[3]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[4]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[5]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[6]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[7]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
[8]=>
array(1) {
["poule_id"]=>
string(1) "0"
}
}
现在我陷入困境,因为我找不到如何计算poule_id 1中有多少支球队。
很抱歉被擦洗。
提前致谢
最佳答案
只要您的插入逻辑保持不变,就可以使用类似以下的内容:
select if(
exists(select max(poule_id) from tbl_teams group by poule_id having count(poule_id) < 4),
max(poule_id),
max(poule_id) +1
) use_id
from tbl_teams;
要获取poule_id,您应该在下一次插入时使用(作为别名use_id)。只要您仅使用此代码来获取下一个ID,就可以了。当然,请在您的特定用例中进行测试,以确保它能按预期工作。
关于php - 计算数据库中有多少个相同的值,如果达到数量则增加,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44286417/