您好,登錄后才能下訂單哦!
這篇文章給大家介紹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中怎么計算字符串長度就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。