Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从数据库中查找的最小日期_Php_Mysql_Sql - Fatal编程技术网

Php 从数据库中查找的最小日期

Php 从数据库中查找的最小日期,php,mysql,sql,Php,Mysql,Sql,我的问题如下: SELECT IsTestBatch, BatchID, CampaignID, IF(ActualTriggerDateTime IS NOT NULL, MIN(ActualTriggerDateTime), MIN(TriggerDateTime)) AS NextQueuedOn FROM campaignbatches WHERE Status IN (2,3) GROUP BY Cam

我的问题如下:

SELECT
    IsTestBatch,
    BatchID,
    CampaignID,
    IF(ActualTriggerDateTime IS NOT NULL,
       MIN(ActualTriggerDateTime),
       MIN(TriggerDateTime)) AS NextQueuedOn
FROM
    campaignbatches
WHERE
    Status IN (2,3)
GROUP BY
    CampaignID
ORDER BY
    IF(ActualTriggerDateTime IS NOT NULL, ActualTriggerDateTime, TriggerDateTime) ASC
if条件工作不正常,并且最小日期不符合我的预期


我需要上面的记录,但它返回上一个图像表中的第一条记录:

所有选择列都将进入GROUPBY子句

SELECT IsTestBatch,BatchID,CampaignID,
 coalesce(MIN(ActualTriggerDateTime),MIN(TriggerDateTime)) AS NextQueuedOn 
 FROM campaignbatches
WHERE Status IN (2,3)
   and IsTestBatch=1 and BatchID=42 -- as you want single row
 GROUP BY IsTestBatch,BatchID,
   CampaignID 
ORDER BY NextQueuedOn ASC

由于聚合函数MIN忽略空值,因此可以尝试从列ActualTriggerDateTime中选择最小日期,如果此列上的所有值都为空,则可以从列TriggerDateTime中选择最小值


您是否只需要1行作为输出?请编辑您的问题,并显示示例输入以及您期望从查询中获得的输出。是的,我需要单个行分组。错误:1064-您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以了解在第3行的“else MINTriggerDateTime AS NextQueedon FROM campaignbatches WHERE Status”附近使用的正确语法
SELECT
    IsTestBatch,
    BatchID,
    CampaignID,
    IFNULL(MIN(ActualTriggerDateTime), MIN(TriggerDateTime)) AS NextQueuedOn
FROM
    campaignbatches
WHERE
    Status IN (2,3)
GROUP BY
    IsTestBatch, BatchID, CampaignID
ORDER BY
    NextQueuedOn ASC