繁体   English   中英

如何在sql IN语句中获取字符串中每个条目的最小值?

[英]How to get a minimum value for each entry in the string in sql IN statement?

我试图获取每个字符串元素的最小值,但我总是在查询sql之后获得所有值的最小值。

QUERY

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM