V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
baiduyixia
V2EX  ›  问与答

请教 mysql 截取的问题

  •  
  •   baiduyixia · 2020-05-04 19:16:04 +08:00 · 774 次点击
    这是一个创建于 1688 天前的主题,其中的信息可能已经有所发展或是发生改变。

    update xx set content=substring_index(content,"指定字符",-1)
    截取到的是在 content 里从右数到左边遇到第一个“指定字符”,然后保留该字符后面的内容,
    请教,如何截取,从左到右时第一个“指定字符”,然后保留该字符后面的内容? 谢谢

    6 条回复    2020-05-06 11:56:49 +08:00
    baiduyixia
        1
    baiduyixia  
    OP
       2020-05-04 19:20:13 +08:00
    比如字段里面的内容是:1,2,3,4,5 和 1,2,3 我想得到 2,3,4,5 和 2,3
    zhuangjia
        2
    zhuangjia  
       2020-05-04 19:36:55 +08:00
    baiduyixia
        3
    baiduyixia  
    OP
       2020-05-04 19:48:56 +08:00
    @zhuangjia 不行哦,是从左到右时第一个“指定字符”,然后保留该字符后面的内容,是该字符后面的内容而不是前面
    zhuangjia
        4
    zhuangjia  
       2020-05-05 10:14:06 +08:00
    @baiduyixia 对哦,是我搞错了,那就组合起来处理好了
    substring_index('1,2,3,4,5', CONCAT(substring_index('1,2,3,4,5',',',1), ','), -1)
    或者
    substring('1,2,3,4,5', (LOCATE(',', '1,2,3,4,5') + CHAR_LENGTH(',')))
    baiduyixia
        5
    baiduyixia  
    OP
       2020-05-05 19:22:33 +08:00
    @zhuangjia 还是不行唉,您的意思是:update 表 xx set content=substring_index('content', CONCAT(substring_index('content','指定字符',1), '指定字符'), -1)
    这样出来 content 内容直接变成 content 这个英文单词了
    zhuangjia
        6
    zhuangjia  
       2020-05-06 11:56:49 +08:00
    @baiduyixia
    update xxx set content = substring_index(content, CONCAT(substring_index(content,指定字符,1), 指定字符), -1);
    注意是否有单引号或双引号。用 字段名 时就不需要加引号了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 09:47 · PVG 17:47 · LAX 01:47 · JFK 04:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.