【问题标题】:MySQL - Sort by Date in WHERE ClauseMySQL - 在 WHERE 子句中按日期排序
【发布时间】:2018-09-10 09:40:29
【问题描述】:

我正在尝试使用 MySQL 更新一行,但在创建 WHERE 子句时遇到了问题。到目前为止,这是我所拥有的:

UPDATE tbl 
SET clmn = 'some value' 
WHERE date = ?

我想用表格中最近的日期填写?。我怎样才能做到这一点?我尝试使用ORDER BY,但后来发现它没有在WHERE 子句中使用。谁能帮我解决这个问题?

【问题讨论】:

    标签: mysql sorting date sql-update where-clause


    【解决方案1】:

    使用在表中查找最近日期的子查询:

    UPDATE tbl 
    SET clmn = 'some value' 
    WHERE date = (SELECT t.max_date FROM (SELECT MAX(date) AS max_date FROM tbl) t );
    

    【讨论】:

    • 这会导致错误:#1093 - You can't specify target table 'tbl' for update in FROM clause
    • @jajajajdoajhodjasodjio 我更新的答案应该有效。很难记住 MySQL 何时会/不会实现子查询。
    • 没错 :)
    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    相关资源
    最近更新 更多