我正在尝试获取每个字符串元素的最小值,但我总是得到查询sql后得到的所有值的最小值。
SELECT `assigned_to`,`appointment_lat`,`appointment_long`,`appointment_time`
FROM `tb_schedules`
WHERE `assigned_to` IN (26,27)
AND ( appointment_time>'2014-09-23 07:33:00' )
GROUP BY `assigned_to`
ORDER BY (DATEDIFF('2014-09-23 07:33:00',`appointment_time`))
LIMIT 1
答案 0 :(得分:1)
如果我正确理解了您的问题,您希望下一个约会为每个列出的ID:
SELECT * FROM (
SELECT `assigned_to`,`appointment_lat`,`appointment_long`,`appointment_time`
FROM `tb_schedules`
WHERE `assigned_to` IN (26,27)
AND appointment_time> now()
ORDER BY 4) x
GROUP BY `assigned_to`
此查询使用了mysql的非标准分组功能,如果您没有指定所有非聚合列,则会为每个唯一的分组值选择一行 - 根据对于文档而言,它是一个随机行,但实际上它是可靠的第一个行,因此在分组之前排序会为您提供可预测的行。