【问题标题】:SQL server : stored procedureSQL 服务器:存储过程
【发布时间】:2018-11-13 07:37:53
【问题描述】:

我有一个包含 6 列(id、deviceID、运动员姓名、fieldName、valueTx、dateTime)的表。

到目前为止,当我调用我的函数 getSensors 时,它会显示所有行。

但是,我希望在每次更新表时仅显示最新行,具体取决于 dateTime 和 deviceID 列。

我从来没有使用过存储过程,所以我想知道它是否最好?如果不是,你建议我怎么做?

提前非常感谢!!!

【问题讨论】:

    标签: php mysql sql phpmyadmin mamp


    【解决方案1】:

    您不需要为此使用存储过程。一个简单的查询:

    select t.*
    from t
    where t.datetime = (select max(t2.datetime) from t t2 where t2.deviceID = t.deviceID);
    

    如果给你一个 deviceID,你可以得到最近的记录:

    select t.*
    from t
    where t.deviceID = v_deviceID
    order by t.datetime desc
    limit 1;
    

    【讨论】:

    • 哦,对不起,这不是我的意思。我有几个 deviceID 行,其中一些具有相同的 deviceID。我想要的是每个 deviceID 显示 1 行,最新的。一个查询还不够吗?
    • @LyessDrille 。 . .这就是第一个查询所做的。
    • 您想获取更新的记录还是 1. 获取 deviceID(从更新中) 2. 获取具有该 deviceID 和最新记录的 1 条记录?在这两种情况下,我想最好使用OUTPUT clausedocs.microsoft.com/en-us/sql/t-sql/queries/…
    • @GordonLinoff ...谢谢,这是我需要的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多