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

如何拼接VARCHAR并提取日期年份?多表关联更新字段求助

解决方案

1. 日期年份提取优化

针对maindb.COL_2的YYYY-MM-DD格式日期,推荐使用YEAR()函数提取年份——相比字符串截取,它对日期类型/标准格式字符串的兼容性更强,不易出错:

YEAR(maindb.COL_2)

2. 修正后的更新SQL

假设你原有的关联规则(engine.COL_3匹配maindb.COL_1 + "-" + 年份)是正确的,完整的更新语句如下:

UPDATE maindb
JOIN engine 
  ON engine.COL_3 = CONCAT(maindb.COL_1, "-", YEAR(maindb.COL_2))
SET maindb.COL_3 = engine.COL_4

注意事项

  • 表名大小写:原SQL中混用maindb和Maindb,部分数据库(如MySQL在区分大小写的操作系统上)会判定为不同表,请保持统一。
  • 先验证再更新:执行更新前,建议先通过SELECT语句确认关联结果是否符合预期,避免误操作:
    SELECT 
      maindb.COL_1,
      YEAR(maindb.COL_2) AS 提取的年份,
      engine.COL_3 AS engine匹配字段,
      engine.COL_4 AS 待更新的百分比
    FROM maindb
    JOIN engine 
      ON engine.COL_3 = CONCAT(maindb.COL_1, "-", YEAR(maindb.COL_2))
    

(附相关截图:输入图片描述)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:01:00