sql中長度

原文鏈接:https://blog.csdn.net/yaun_1994/article/details/80426608

由於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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章