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

MySQL LIMIT 2后如何选取第二行字段?PHP代码示例答疑

获取SQL查询结果中第二条数据的字段值

嘿,这问题其实很好解决,咱们一步步来理清楚:

你当前用的mysql_fetch_array()函数每次调用都会从结果集中取出下一行数据——第一次调用拿到了第一条记录,那再调用一次就能拿到第二条啦。不过稳妥起见,最好先判断结果集中是否真的存在第二条数据,避免出现报错的情况。

修改后的代码如下:

$sMonOperationHours = "SELECT * FROM ".COMPANY_OPERATION_HOURS_TBL." WHERE f_company_id = '$g_companyid' AND f_day = 'MON' LIMIT 2";
$rsMonOperationHours = mysql_query($sMonOperationHours);

// 获取第一条数据的字段值
$rowMonOperationHours = mysql_fetch_array($rsMonOperationHours);
$iMonStartTime = $rowMonOperationHours['f_start_time'];
$iMonEndTime = $rowMonOperationHours['f_end_time'];

// 获取第二条数据的字段值,先判断是否存在该记录
if ($rowMonOperationHours2 = mysql_fetch_array($rsMonOperationHours)) {
    $iMonStartTime2 = $rowMonOperationHours2['f_start_time'];
    $iMonEndTime2 = $rowMonOperationHours2['f_end_time'];
} else {
    // 如果没有第二条数据,可以在这里设置默认值或者做其他容错处理
    $iMonStartTime2 = null;
    $iMonEndTime2 = null;
}

额外小建议

  • 注意:mysql_*系列函数已经在PHP 5.5.0开始被废弃,PHP 7.0.0后直接被移除了,建议你尽快迁移到mysqli或者PDO扩展,它们更安全、功能也更完善。
  • 如果你的业务只需要f_start_time和f_end_time这两个字段,建议把SQL语句里的SELECT *改成SELECT f_start_time, f_end_time,这样能减少不必要的数据传输,提升查询效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:27:20