我从SPLIT_STR
获得了blog.fedecarg.com函数
这是密码
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
有缺陷吗?
注意:如果你删掉了外语(โอม
)。问题会解决的。
我如何使用这个功能与外语很好地工作,请帮助。
谢谢。
发布于 2013-08-07 09:35:36
LENGTH
以字节为单位返回字符串长度;您的外文字符可能是2或3个字节UTF序列。尝试将LENGTH
替换为CHAR_LENGHT
,它在函数定义中返回以字符度量的字符串的长度。
SQLfiddle:http://sqlfiddle.com/#!2/1bb2d/1
https://stackoverflow.com/questions/18099703
复制相似问题