MYSQL 字符串怎么按长度进行截取,不是字符长度

MYSQL 字符串怎么按长度进行截取,不是字符长度,第1张

如果最后面是4为,那么你取值时,只要把你字符串截取到总长度-4就行了(此条件必须是长度为两位),附SQL:update test set Name=substring(Name,1,length(Name)-4)如果后面是任意长度,那么你需要截取到最后一个“[”这里,可以用以下SQL:SELECT replace(Name,REVERSE(LEFT(REVERSE(Name),INSTR(REVERSE(Name),'['))),'') from test 中间那段是取最后那个[任务数字]的,请收藏。

参考以下方法

1 查找原因

至此,只能从SQL语句出发了。网上搜了下 GROUP_CONCAT 数据截断的问题,答案都指向了 group_concat_max_len 这个参数,它的默认值正好是1024。可以直接在数据库中通过下面的命令查看这个默认值:

mysql>show variables like 'group_concat_max_len'

+----------------------+-------+

| Variable_name | Value |

+----------------------+-------+

| group_concat_max_len | 1024 |

+----------------------+-------+

1 row in set (0.00 sec)

mysql>

MySQL官方手册 对它的定义是The maximum permitted result length in bytes for the GROUP_CONCAT() function. ,也就是它限制了GROUP_CONCAT数据的长度。

2 解决问题

只要调整 group_concat_max_len到最大值就行了

mysql中 varchar(20)数据长度超过了是设置错误造成的,解决方法为:

1、通过my.ini(Linux下为my.cnf)的配置文件进行修改。一般my.ini文件在安装文件的根目录下。

2、系统是Windows10,安装目录下没有my.ini文件。

3、仔细找了一下,my.ini文件在ProgramData下。

4、打开配置文件,在 [mysqld] 的后面加入一行“ft_min_word_len=1”。PS:也可以设置成ft_min_word_len=2,具体情况根据自己的中文数据而定。

5、重启MySQL服务。注意,配置文件修改后一定要重启服务后才能生效。

6、查看一下最小索引长度,确定生效。SQL语句:SHOW GLOBAL VARIABLES LIKE '%__word_len%'。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5944529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-09
下一篇 2023-03-09

发表评论

登录后才能评论

评论列表(0条)

保存