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

SQL中使用concat或substring在图片文件名前添加字母X的实现方法

解决方案

完全可以通过concat配合字符串定位、截取函数实现,根据你的Image字段存储内容的不同,有两种实现方式:


场景1:Image字段仅存储纯文件名

如果路径中的{tuesday}_1pm\属于固定前缀的一部分,Image字段只存最后的文件名(如示例中的{tuesday}_1_ggc9070bsgdg763013a06a54b9bf54e5),直接在Image前拼接你要的前缀即可:

-- 以下示例添加X前缀,替换为A/B等即可得到对应结果
SELECT CONCAT('copy \\library\common\photos\{tuesday}_1pm\', 'X', Image, '.', ImageType)
FROM 你的表名;

场景2:Image字段存储「子目录+文件名」的相对路径

如果{tuesday}_1pm\{tuesday}_1_ggc9070bsgdg763013a06a54b9bf54e5整体是Image字段的值,就需要先定位路径中最后一个反斜杠的位置,拆分后插入前缀再拼接,不同数据库语法如下:

MySQL 实现

SELECT CONCAT(
    'copy \\library\common\photos\',
    -- 截取最后一个反斜杠之前的路径部分
    LEFT(Image, LENGTH(Image) - LOCATE('\\', REVERSE(Image)) + 1),
    'X', -- 替换为你需要的A/B等前缀
    -- 截取最后一个反斜杠之后的文件名部分
    RIGHT(Image, LOCATE('\\', REVERSE(Image)) - 1),
    '.',
    ImageType
)
FROM 你的表名;

SQL Server 实现

SELECT CONCAT(
    'copy \\library\common\photos\',
    LEFT(Image, LEN(Image) - CHARINDEX('\', REVERSE(Image)) + 1),
    'X', -- 替换为你需要的A/B等前缀
    RIGHT(Image, CHARINDEX('\', REVERSE(Image)) - 1),
    '.',
    ImageType
)
FROM 你的表名;

PostgreSQL 实现

SELECT CONCAT(
    'copy \\library\common\photos\',
    LEFT(Image, LENGTH(Image) - STRPOS(REVERSE(Image), '\') + 1),
    'X', -- 替换为你需要的A/B等前缀
    RIGHT(Image, STRPOS(REVERSE(Image), '\') - 1),
    '.',
    ImageType
)
FROM 你的表名;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:48:03