VARCHAR是MySQL中常用的數(shù)據(jù)類型,但其單位究竟是字符還是字節(jié)呢?
納雍網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
經(jīng)過查閱,MySQL的 官方文檔 給出了答案:
4.1及之后的版本,VARCHAR的單位是字符;4.1之前的版本,VARCHAR的單位是字節(jié)。(As of version 4.1 , MySQL interprets length specifications in character column definitions in character units . (Before MySQL 4.1, column lengths were interpreted in bytes .) This applies to CHAR, VARCHAR and the TEXT types.)
同時官方文檔也提到,4.1及之后的版本以UTF-8作為預(yù)定義字符集。(VARCHAR is shorthand for CHARACTER VARYING. NATIONAL VARCHAR is the standard SQL way to define that a VARCHAR column should use some predefined character set. MySQL 4.1 and up uses UTF8 as this predefined character set .)
在 Go 語言中,是不能用 len 函數(shù)來統(tǒng)計字符串中的字符個數(shù)的,這是因為在 Go 中,字符串是以 UTF-8 為格式進行存儲的,在字符串上調(diào)用 len 函數(shù),取得的是字符串包含的 byte 的個數(shù)。
那么如何在Go語言中獲取字符串中的字符個數(shù)呢?有下面幾種方法:
測試發(fā)現(xiàn)速度最快的是 utf8.RuneCountInString()
可以寫個觸發(fā)器來進行修改。在對表插入數(shù)據(jù)的時候觸發(fā)器自動對插入字段內(nèi)容進行修改,把10修改為10m。
"定義varchar類型的字段,長度設(shè)置為10,"由于是非unicode字符串類型,1字節(jié)=8位,所以最多輸入10個英文或5個漢字.
若"你定義nvarchar類型的字段,長度設(shè)置為10,"那么屬于unicode字符串類型,1字節(jié)=16位,所以最多輸入10個英文或10個漢字.
新聞標題:mysql里怎么輸入單位,表格怎么輸入單位
標題來源:http://chinadenli.net/article38/heijsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、電子商務(wù)、全網(wǎng)營銷推廣、App開發(fā)、網(wǎng)站排名、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)