VARCHAR(20000)在MySQL中有效吗?

Zoe*_*Zoe 60 mysql varchar

我需要澄清一下MySQL中varchar字段的最大长度.

我一直认为最大长度是255(255什么?我假设的字符,但这可能是我混淆的原因).看一下我们正在使用的外部公司设置的数据库表,我看到一个字段设置为varchar(20000),保存的块长度超过255个字符.为什么这样做?20000是有效值吗?

一些谷歌搜索显示,在mysql varchar有65,535字节的限制,我看到varchar(65535)正在使用,那么255限制如何与此相关?

Sam*_*son 72

请注意MySQL版本.

http://dev.mysql.com/doc/refman/5.0/en/char.html

VARCHAR列中的值是可变长度字符串.长度可以指定为MySQL 5.0.3之前的0到255之间的值,5.0.3及更高版本中的0到65,535之间的值.MySQL 5.0.3及更高版本中VARCHAR的有效最大长度受最大行大小(65,535字节,在所有列之间共享)和使用的字符集的限制.

我有什么版本的MySQL?

运行以下查询...

select version() as myVersion
Run Code Online (Sandbox Code Playgroud)

  • FWIW,MySQL也接受`VARCHAR(65536)`,但它隐含地将列提升为`MEDIUMTEXT`. (10认同)
  • 我想补充一下这个答案:无论什么版本(至少高达5.5),向一个大于`VARCHAR(767)`的列添加索引都行不通(这包括PK). (3认同)

Wou*_*ick 12

它自版本5.0.3起有效,当它们将最大长度从255更改为65535时.

CHAR 最多一直是255.

http://dev.mysql.com/doc/refman/5.0/en/char.html


Hav*_*ard 8

如果您期望输入太大,则最好使用TEXT,MEDIUMTEXT或LONGTEXT.