mysql - 从结果集中选择 TOP 1

标签 mysql sql

我想检索使用 Union 连接的查询结果集的前 1 个值

SELECT TOP 1 * FROM
(
    SELECT paused_time as end_time
        FROM production_time
        WHERE created_time = curdate()
    UNION 
    SELECT resumed_time as end_time
        FROM pause_timer
        WHERE created_time = curdate()
    UNION
    SELECT end_time as end_time
        FROM timer_idle
        WHERE created_time = curdate()
) as end_time
ORDER BY end_time DESC 

却得不到预期的结果。

最佳答案

据我所知,MySQL 中没有TOP 关键字。你需要的是Limit:

SELECT * FROM
(
    SELECT paused_time as end_time FROM production_time WHERE created_time = curdate()
    UNION 
    SELECT resumed_time as end_time FROM  pause_timer WHERE created_time = curdate()
    UNION
    SELECT end_time as end_time FROM  timer_idle WHERE created_time = curdate()
) as end_time
ORDER BY end_time DESC 
LIMIT 1

关于mysql - 从结果集中选择 TOP 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31583953/

相关文章:

mysql - mysqltuner后需要重新准备prepared语句

php - 无法通过远程服务器连接到数据库

javascript - 根据组合框值的变化改变两个文本框的值

php - 更正返回多行的 MySQL 语法

sql - Codeigniter更新-错误代码: 1064 You have an error in your SQL syntax;

sql - 选择所有列和多列时缺少表达式

sql - 如何在 SQL 选择查询中展开一个 int 对列表

检查表信息是否存在时的 PHP/SQL 问题

sql - 字段不存在时求和

mysql - 如何左连接以选择with语句