update xx set content=substring_index(content,"指定字符",-1)
截取到的是在 content 里从右数到左边遇到第一个“指定字符”,然后保留该字符后面的内容,
请教,如何截取,从左到右时第一个“指定字符”,然后保留该字符后面的内容?
谢谢
1
baiduyixia OP 比如字段里面的内容是:1,2,3,4,5 和 1,2,3 我想得到 2,3,4,5 和 2,3
|
2
zhuangjia 2020-05-04 19:36:55 +08:00
[function_substring-index]( https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_substring-index)
把 -1 改成 1 就可以了 |
3
baiduyixia OP @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(','))) |
5
baiduyixia OP @zhuangjia 还是不行唉,您的意思是:update 表 xx set content=substring_index('content', CONCAT(substring_index('content','指定字符',1), '指定字符'), -1)
这样出来 content 内容直接变成 content 这个英文单词了 |
6
zhuangjia 2020-05-06 11:56:49 +08:00
@baiduyixia
update xxx set content = substring_index(content, CONCAT(substring_index(content,指定字符,1), 指定字符), -1); 注意是否有单引号或双引号。用 字段名 时就不需要加引号了 |