MySQL VARCHAR 長度:解決位元組與字元的混淆
在MySQL 中,VARCHAR(n) 欄位長度的解釋因不同而異關於資料庫版本。在 4.1 之前的版本中,列長度以位元組為單位定義。但是,在 MySQL 5 及更高版本中,長度以字元單位解釋。
位元組計數:MySQL 版本 4
在 MySQL 版本 4 中,VARCHAR(32) 欄位可以容納32位元組的資料。因此,在此欄位中儲存多位元組字元將取決於特定的字元編碼,每個字元可能需要更多位元組。
字元計數:MySQL 版本 5 及更高版本
MySQL 版本 4 之後,列長度由字元數決定。 UTF-8 中的 VARCHAR(32) 欄位允許使用 32 個字元。在這種情況下,多位元組 UTF-8 字元仍會佔用多個位元組,但列長度計算考慮的是字元數,而不是位元組數。
MySQL 文件確認
為了進一步澄清,MySQL 5 官方文件指出:「MySQL 以字元為單位解釋字元列定義中的長度規格...這適用於CHAR、VARCHAR 和TEXT
UTF-8 對VARCHAR最大長度的影響
有趣的是,VARCHAR 欄位的最大長度也受到字元集的影響。個位元組。位元組)。
以上是MySQL 4 和 5 之間 VARCHAR 長度如何變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!