gpt4 book ai didi

mysql - SPLIT_STR 不适用于外语

转载 作者:行者123 更新时间:2023-11-29 00:27:53 31 4
gpt4 key购买 nike

我从 blog.fedecarg.com 得到函数 SPLIT_STR

这是代码

CREATE FUNCTION SPLIT_STR(
x VARCHAR(255),
delim VARCHAR(12),
pos INT
)
RETURNS VARCHAR(255)
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, delim, pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1),
delim, '');

如果我尝试选择喜欢

SELECT SPLIT_STR('accountName;โอมTEST;No.454646;i;2013-8-23', ';' , 2) as 'RES';

结果是

_________________
| RES |
| ------------- |
| โอมTEST |
_________________

如果我将该索引更改为 3

SELECT SPLIT_STR('accountName;โอมTEST;No.454646;i;2013-8-23', ';' , 3) as 'RES';

预期值为No.454646

但是结果是

_________________
| RES |
| ------------- |
| 4646 |
_________________

函数 SPLIT_STR 有错误吗?

注意:如果您删除了外语(โอม)。问题就解决了。

如何使用外语才能很好地使用这个功能,请帮忙。

谢谢。

最佳答案

LENGTH以字节为单位返回字符串长度;您的外语字符可能是 2 或 3 个字节的 UTF 序列。尝试用 CHAR_LENGHT 替换 LENGTH , 在函数定义中返回以字符为单位测量的字符串的长度。

SQLfiddle:http://sqlfiddle.com/#!2/1bb2d/1

关于mysql - SPLIT_STR 不适用于外语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099703/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com