Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 MySQL如何在分组行之前对行进行排序?_Php_Mysql - Fatal编程技术网

Php MySQL如何在分组行之前对行进行排序?

Php MySQL如何在分组行之前对行进行排序?,php,mysql,Php,Mysql,我试图为每个尺寸、品牌和种类返回一行,但有时会有多行具有完全相同的值,除了enddate 我想返回具有最高enddate(Order byenddatedesc)的行不起作用 SELECT promotion.id, promotion.uid, promotion.promotion_id, promotion.url, promotion.shop_id, promotion.brand_kind_id, promotion.befo

我试图为每个尺寸、品牌和种类返回一行,但有时会有多行具有完全相同的值,除了
enddate

我想返回具有最高
enddate
(Order by
enddate
desc)的行不起作用

SELECT 
    promotion.id,
    promotion.uid,
    promotion.promotion_id,
    promotion.url,
    promotion.shop_id,
    promotion.brand_kind_id,
    promotion.before_price,
    promotion.after_price,
    promotion.brand_id,
    promotion.brand_package_id, 
    promotion.brand_size, 
    promotion.amount, 
    promotion.begindate,
    promotion.enddate

FROM 
    `promotion`     

WHERE 
    AND (promotion.url is not null AND promotion.url != '')

GROUP BY 
    promotion.brand_id,
    promotion.brand_kind_id,
    promotion.brand_size

ORDER BY 
    promotion.enddate DESC

如果特定的问题是某些行具有不同的结束日期,我建议从select字符串中删除结束日期。这意味着不考虑具有不同结束日期的行

另一个选项可能是选择最大结束日期,您可以尝试以下操作:

SELECT 
    promotion.id,
    promotion.uid,
    promotion.promotion_id,
    promotion.url,
    promotion.shop_id,
    promotion.brand_kind_id,
    promotion.before_price,
    promotion.after_price,
    promotion.brand_id,
    promotion.brand_package_id, 
    promotion.brand_size, 
    promotion.amount, 
    promotion.begindate,
    MAX(promotion.enddate)
FROM 
    `promotion`     
WHERE 
    AND (promotion.url is not null AND promotion.url != '')
GROUP BY 
    promotion.brand_id,
    promotion.brand_kind_id,
    promotion.brand_size
ORDER BY 
    promotion.enddate DESC
但是,如果您打算使用结束日期作为数据,我只推荐这种方法