原sql:结果集乱序
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
(
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
ads_series t1
WHERE
t1.IS_NEW_SERIES = 1
AND t1.dr = 0
AND t1.STATUS = 0
AND t1.IS_TOP = 1
ORDER BY
t1.sort DESC
) t1 UNION all
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
(
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
ads_series t1
WHERE
t1.IS_NEW_SERIES = 0
AND t1.dr = 0
AND t1.STATUS = 0
AND t1.IS_TOP = 0
ORDER BY
t1.CREATE_TIME DESC
) t1
LIMIT 0, 2
解决方法:在子查询中使用limit
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
(
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
ads_series t1
WHERE
t1.IS_NEW_SERIES = 1
AND t1.dr = 0
AND t1.STATUS = 0
AND t1.IS_TOP = 1
ORDER BY
t1.sort DESC
LIMIT 2
) t1 UNION all
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
(
SELECT
t1.id,
t1.series_name,
t1.series_type,
t1.belong_style_id,
t1.pc_new_series_cover_image_url,
t1.app_new_series_cover_image_url,
t1.sort
FROM
ads_series t1
WHERE
t1.IS_NEW_SERIES = 0
AND t1.dr = 0
AND t1.STATUS = 0
AND t1.IS_TOP = 0
ORDER BY
t1.CREATE_TIME DESC
LIMIT 2
) t1
LIMIT 0,2
因不加limit ,orber by 会被优化器去掉,不会执行排序