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 byenddate
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
但是,如果您打算使用结束日期作为数据,我只推荐这种方法