[英]How to get a minimum value for each entry in the string in sql IN statement?
我试图获取每个字符串元素的最小值,但我总是在查询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
如果我正确理解了您的问题,则希望为每个列出的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的非标准分组功能,如果您不指定所有非聚合列,它将为每个唯一分组值选择一行-根据文档,它是随机行,但是实际上,它确实是第一行,因此在分组之前进行排序可以使您有一个可预测的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.