php - 与 MySQL 的 UNION 中每个 SELECT 的不同 ORDER BY

标签 php mysql

使用 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/

相关文章:

mysql - Asterisk 从数据库中读出值

php - mysql 时间戳不在纪元

php - 使用 SQL 重新统计每个用户在数据库中的总发帖和更新

php - 数据库中的故事音乐文件路径

mysql - 更新时间查询,将其保存到数据库中

php - 即使使用了我在网上发现的所有技巧,警告也没有得到抑制

php - 将长名称列表读入 mysql 并查询名称

php - ElasticSearch 对多个字段进行求和排序

php - php xpath xml解析循环仅显示第一个条目

php - 从嵌套的批处理脚本中执行 PHP 脚本