You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MySQL查询自动忽略无赛事记录的周末日期

解决方案:自动展示有赛事的周末,忽略无赛事日期

核心思路

不再针对每个周末手动编写SQL查询,而是一次性获取所有赛事,按周末分组后只展示存在赛事的周末——赛事调整时无需修改代码,数据库有对应数据就自动显示,无数据则直接跳过。

步骤1:优化MySQL查询

使用以下SQL,获取所有赛事并标记其所属的周末(以当周周六为统一标识,将周六、周日的赛事归为同一周末分组):

SELECT 
    rel_date,
    fixtures,
    -- 计算当前日期所属周末的周六(WEEKDAY返回值:0=周一,6=周日)
    DATE_ADD(rel_date, INTERVAL (6 - WEEKDAY(rel_date)) DAY) AS weekend_date
FROM fixtures
ORDER BY rel_date ASC;

步骤2:修改PHP代码实现自动分组展示

替换原有固定查询的PHP代码,实现按周末自动分组、仅输出有赛事的周末:

<?php
$servername = "#";
$username = "#";
$password = "#";
$dbname = "#";

// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// 执行优化后的查询
$sql = "
SELECT 
    rel_date,
    fixtures,
    DATE_ADD(rel_date, INTERVAL (6 - WEEKDAY(rel_date)) DAY) AS weekend_date
FROM fixtures
ORDER BY rel_date ASC;
";
$result = $conn->query($sql);

// 按周末分组存储赛事
$weekendFixtures = [];
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        $weekendDate = $row['weekend_date'];
        // 将同周末的赛事归入同一分组
        if (!isset($weekendFixtures[$weekendDate])) {
            $weekendFixtures[$weekendDate] = [];
        }
        $weekendFixtures[$weekendDate][] = $row['fixtures'];
    }
}

// 遍历分组,输出每个有赛事的周末
$weekendCount = 1;
foreach ($weekendFixtures as $date => $fixtures) {
    // 输出周末标题,可自定义格式(比如显示周六日期+周末编号)
    echo "<h3>Weekend {$weekendCount} ({$date})</h3>";
    $weekendCount++;
    
    // 输出该周末的所有赛事
    foreach ($fixtures as $fixture) {
        echo "<div class='fixture-strip'>{$fixture}</div>";
    }
}

// 无任何赛事时的提示(可选)
if (empty($weekendFixtures)) {
    echo "<p>No fixtures scheduled</p>";
}

$conn->close();
?>

补充说明

  • 自动适配赛事调整:新增或修改赛事日期后,代码会自动识别对应周末并展示,无需手动修改SQL或代码逻辑。
  • 周末范围可自定义:如果你的周末定义是周五到周日,只需调整DATE_ADD的计算逻辑,将周末标识改为周五即可。
  • 性能优化:仅需一次数据库查询,相比原方案多次查询更高效。

内容的提问来源于stack exchange,提问作者terrencec63

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:08:27