You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MariaDB 10.3.32中如何用查询结果批量更新匹配ts的表字段

解决MariaDB关联更新表字段的问题

你之前尝试的是PostgreSQL风格的UPDATE ... FROM语法,但MariaDB不支持这种写法,需要使用UPDATE ... JOIN ... SET的标准关联更新语法。

以下是正确的更新语句:

UPDATE avg1h
JOIN (
    SELECT ts, MAX(pwr) AS peak
    FROM (
        SELECT
            ts - INTERVAL EXTRACT(SECOND FROM ts) SECOND
                - INTERVAL EXTRACT(MINUTE FROM ts) MINUTE AS ts,
            CASE WHEN pwr < 0 THEN 0 ELSE pwr END as pwr
        FROM avg15m
    ) AS peak15m
    GROUP BY ts
) AS peaks ON avg1h.ts = peaks.ts
SET avg1h.pwr_peak = peaks.peak;

说明:

  • 通过JOIN关键字将avg1h表与你已验证正确的peaks子查询结果关联,匹配条件为两个表的ts字段相等
  • 关联完成后,直接将子查询中的peak值赋值给avg1h表的pwr_peak字段
  • 该语句会批量更新所有ts匹配的行

内容的提问来源于stack exchange,提问作者Wannes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 13:15:40