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