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
總結
- 上一篇: 【学习笔记】从零开始造一个汗液检测穿戴设
- 下一篇: 使用Mahout实现协同过滤