共計 1419 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章給大家介紹 mysql 中怎么計算字符串長度,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
mysql 中計算字符串長度函數
1、GBK 編碼
char_length 1 個中文字符代表一個長度,比如 char_lenth(你好) 長度為 2,char_lenth(hello),長度為 5
length 1 個中文字符需要兩個字節,代表 2 個長度,比如 char_lenth(你好) 長度為 4,char_lenth(hello),長度為 5
bit_length 1 個中文字符需要兩個字節,一個字節占 8 位,即一個字符代表 16 個長度,比如 char_lenth(你好) 長度為 32,char_lenth(hello),長度為 40
2、utf8 編碼
char_length 1 個中文字符代表一個長度,比如 char_lenth(你好) 長度為 2,char_lenth(hello),長度為 5
length 1 個中文字符需要三個字節,代表 3 個長度,比如 char_lenth(你好) 長度為 6,char_lenth(hello),長度為 5
bit_length 1 個中文字符需要三個字節,一個字節需要 8 位,即一個中文代表 24 個長度,比如 char_lenth(你好) 長度為 48,char_lenth(hello),長度為 40
sql 語句中的通配符
1、mysql 中常用的通配符有:
通配符解釋
% 匹配一個或多個字符
_匹配一個字符
[string] 匹配 string 中任意一個字符
[^string] 不匹配 string 中任意一個字符
[!string] 不匹配 string 中任意一個字符
2、% 的使用
在 mysql 的查詢或是授權的時候,我們通常會用到 mysql 的通配符。
取出所有 test 開頭的分類,則需要使用通配符 %
1select * from category name test%
3、_ 的使用
比如查詢 test1_0 開頭,后面跟著一個字符的分類,查詢語句如下:
1select * from category where name like test1_0_
備注:在 like 語句里面,不能隨便使用 _,如果數據表中存在如下記錄,上訴查詢就會失敗,如下:
1INSERT INTO category (`name`)VALUES(test1a0b
怎么解決這個問題,只能轉移字符串中的“_”字符,如果涉及到匹配查詢,其次名字的分隔符盡量不要使用下劃線 _。上面查詢語句,可以改為:
1select * from category where name like test1\_0_
4、正則匹配
如果在上面表中,再插入如下記錄
1INSERT INTO category (`name`)VALUES(test1_0a
再次進行上訴查詢,會返回
如果,我僅僅需要以數字結尾的分類,那么上面的查詢語句就不能滿足條件。這個時候,就需要使用正則匹配了。
1select * from category where name REGEXP test1_0[1-9]
mysql 的正則表達式,和其他語言差不多,常用的字符如下:
. 匹配任何單個的字符
[abc] 匹配 abc 中任意一個字符
[a-z] 匹配任何小寫字母
[A-Z] 匹配任何大寫字母
[0-9] 匹配任何數字
^test 代表以某個 test 開頭
test$ 代表以 test 結
關于 mysql 中怎么計算字符串長度就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節