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

SQLite能否实现指定文本提取与跨列插入操作?

解决SQLite中提取文本并更新到另一列的问题

问题原因

你之前的UPDATE语句执行失败,核心原因是SQLite的UPDATE语法里,无法直接引用SELECT子句中定义的subtitle别名,必须把提取文本的逻辑直接嵌入到更新语句里,或者通过子查询获取目标值。

解决方案1:直接内嵌提取逻辑

把你用来提取subtitle的SUBSTR+INSTR逻辑直接放到REPLACE函数的参数位置,一步完成提取与更新操作:

UPDATE my_table
SET event_details = REPLACE(
    event_details,
    '<SubTitle>',
    SUBSTR(
        filename,
        INSTR(filename, 'C\') + 2,
        INSTR(filename, '] ') - INSTR(filename, ') ') - 2
    )
)
WHERE oid = 4040;

解决方案2:使用子查询获取提取值

如果提取逻辑复杂,或想让代码更清晰,可通过子查询单独获取subtitle的值,再代入UPDATE语句:

UPDATE my_table
SET event_details = REPLACE(event_details, '<SubTitle>', (
    SELECT SUBSTR(
        filename,
        INSTR(filename, 'C\') + 2,
        INSTR(filename, '] ') - INSTR(filename, ') ') - 2
    )
    FROM my_table
    WHERE oid = 4040
))
WHERE oid = 4040;

验证建议

执行UPDATE前,先用你原有的SELECT语句确认提取的subtitle值是否正确,避免更新错误数据:

SELECT
  filename,
  SUBSTR(filename, INSTR(filename, 'C\')+2, INSTR(filename, '] ') - INSTR(filename, ') ')-2) AS subtitle
FROM my_table where oid = 4040;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 21:22:04