使用 PHP 和 MySQL,有没有办法为 UNION 中的每个 SELECT 语句使用不同的 ORDER BY?
SELECT * FROM the_table WHERE color = 'blue' ORDER BY price ASC LIMIT 5
UNION ALL
SELECT * FROM the_table WHERE color = 'red' ORDER BY RAND() LIMIT 10
上面的说法是行不通的。看来您只能对最终结果集执行 ORDER BY。有没有办法在第一个 SELECT 上执行 ORDER BY,然后在第二个 SELECT 上使用 UNION 执行不同的 ORDER BY?
最佳答案
(SELECT * FROM the_table WHERE color = 'blue' ORDER BY price ASC LIMIT 5)
UNION ALL
(SELECT * FROM the_table WHERE color = 'red' ORDER BY RAND() LIMIT 10)
关于php - 与 MySQL 的 UNION 中每个 SELECT 的不同 ORDER BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128371/