mysql - 更新列显示 mysql 中的语法错误

标签 mysql

UPDATE datanyc_new t2
SET    Prevclose = t1.Last
FROM   datanyc t1
WHERE  t2.Symbol = t1.Symbol
AND    t2.`Timestamp` = '2020-01-03'
AND    t1.`Timestamp` = ( SELECT max( Timestamp ) FROM datanyc WHERE Timestamp= '2020-01-03')

这是我使用的查询。

enter image description here

最佳答案

多表语法:对于mysql来说是

UPDATE [LOW_PRIORITY] [IGNORE] table_references
    SET assignment_list
    [WHERE where_condition]

https://dev.mysql.com/doc/refman/8.0/en/update.html

假设问题已正确标记,请尝试

UPDATE datanyc_new dn join datanyc d on dn.Symbol = d.Symbol
SET    Prevclose = d.Last
WHERE  dn.`Timestamp` = '2020-01-03'
  AND  d.`Timestamp` = ( SELECT max(Timestamp) FROM datanyc WHERE Timestamp= '2020-01-03');

我没有看到子查询的要点,或者可能是不正确的,如果时间戳列包含日期时间并且目的是获取 2020-01-03 的最后一次时间,那么 where 不正确并且将返回 null 你可能需要WHERE date(timestamp) = '2020-01-03'

关于mysql - 更新列显示 mysql 中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59728737/

相关文章:

c# - 通过 C# 将 JSON 数据 POST 到 PHP 并将值存储在 MYSQL 中

php - 使用 mysql 和 php 选择以相同 4 位数字结尾的行进行分组

mysql - 更新触发器不适用于 json 数据类型

sql - 类似于mysql sql where子句中的MAX

python - Have 子句中的 SQLAlchemy 引用标签

mysql - 为什么 WPF 忽略我的 CultureInfo.CurrentCulture

数据库 | SET 和 TEXT 字段类型有什么区别?

MySQL 按总和限制行数

mysql - 选择具有相同 id 的行并重写按 id 分组的 id

mysql - 如何从不同的列表中识别使用哪个 id?