mysqlソート後のパケット順序が間違っている問題の解決

681 ワード

通常のロジックは、まずorder byがフィールドをソートし、groupbyがフィールドをグループ化します.このときの結果が集約される前にソートされるフィールドの値は、必ずしも前にソートされた結果の最初のレコードではありません.最も簡単な方法は、groupby id結果order byがフィールドをソートすることです(現在記録されているプライマリキー、groupbyの後にこのソートの役割が保持されます).それからgroupbyグループフィールドで自分の望む結果が得られるので、仲間は早くやってみましょう(mysql 5.7からサポートされているようですが、これは検証していません.どうせ私が使っているときはこれでいいです)
--               
SELECT wx_user_id,content,create_date from (
	SELECT * from (
		SELECT
			b.id,
			b.wx_user_id,
			b.content,
			b.create_date
		FROM
			t_weixin_user_browse b
		WHERE
			`status` = 'A'
		AND retailer_id = 'fd23db2c9ed442b89754e94cbe437a81'
	) t GROUP BY id ORDER BY create_date desc
) t2 GROUP BY wx_user_id