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
相关产品推荐
相关产品推荐

