sql中长度

由于oracle 和mysql 的语法差异,所以其函数也不同,其中针对不同的字符编码处理方式也不一样
ORACLE下取长度:

lengthb(str)计算字符串所有的字节长度:返回字符串的长度,单位是字节

select lengthb('测试') FROM DUAL;  --  4(GBK)/6(UTF-8)

    1

length(str)计算字符串所有的字符长度:返回字符串的长度,单位是字符

select length('测试') FROM DUAL;   --2(GBK)/2(UTF-8)

    1

其中
对于单字节字符,length和lengthb的长度是一样的:

SELECT length('test') FROM DUAL;   --  4
SELECT lengthb('test') FROM DUAL;  --  4

    1
    2

MySQL下

    char_length 显示的字符个数;
    length 显示字符在当前编码下存储,所占的字节数。
    bit_length 显示字符在当前编码下存储,所占的位,也就是长度* 8

select char_length('测试');   --  2(GBK)/2(UTF-8)
select length('测试');        --  4(GBK)/6(UTF-8)
select bit_length('测试');    --32(GBK)/48(UTF-8)-8)

    1
    2
    3

此外,可利用这些函数所得的长度值判断字符串含有中文字符
————————————————
版权声明:本文为CSDN博主「read_wrong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yaun_1994/article/details/80426608

发布了26 篇原创文章 · 获赞 4 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41926640/article/details/100657900