MYSQL中 ENUM 类型的详细解释

ENUM 类型

ENUM 是一个字符串对象,其值通常选自一个允许值列表中,该列表在表创建时的列规格说明中被明确地列举。

在下列某些情况下,值也可以是空串("") 或 NULL

  • 如果将一个无效值插入一个 ENUM (即,一个不在允许值列表中的字符串),空字符串将作为一个特殊的错误值被插入。事实上,这个字符串有别于一个"普通的"空字符串,因为这个字符串有个数字索引值为 0。稍后有更详细描述。
  • 如果一个 ENUM 被声明为 NULLNULL 也是该列的一个合法值,并且该列的缺省值也将为 NULL 。如果一个 ENUM 被声明为 NOT NULL,该列的缺省值将是该列表所允许值的第一个成员。

每个枚举值均有一个索引值:

  • 在列说明中列表值所允许的成员值被从 1 开始编号。

  • 空字符串错误值的索引值为 0。这就意味着,你可以使用下面所示的 SELECT 语句找出被赋于无效 ENUM 值的记录行。

    mysql> SELECT * FROM tbl_name WHERE enum_col=0;

  • NULL 值的索引值为 NULL

例如,指定为 ENUM("one", "two", "three") 的一个列,可以有下面所显示的任一值。每个值的索引值也如下所示:

索引值

NULL

NULL

""

0

"one"

1

"two"

2

"three"

3

换个枚举最大可以有 65535 个成员值。

从 MySQL 3.23.51 开始,当表被创建时,ENUM 值尾部的空格将会自动删除。

当为一个 ENUM 列赋值时,字母的大小写是无关紧要的。然而,以后从列中检索出来的值的大小写却是匹配于创建表时所指定的允许值。

如果在一个数字语境中检索一个ENUM,列值的索引值将被返回。例如,你可以像这样使用数字值检索一个 ENUM 列:

mysql> SELECT enum_col+0 FROM tbl_name;

如果将一个数字存储到一个 ENUM 中,数字被当作为一个索引值,并且存储的值是该索引值所对应的枚举成员。(但是,这在 LOAD DATA 将不能工作,因为它视所有的输入均为字符串。) 在一个 ENUM 字符串中存储数字是不明智的,因为它可能会打乱思维。

ENUM 值依照列规格说明中的列表顺序进行排序。(换句话说,ENUM 值依照它们的索引号排序。)举例来说,对于 ENUM("a", "b") "a" 排在 "b" 后,但是对于 ENUM("b", "a")"b" 却排在 "a" 之前。空字符串排在非空字符串前,NULL 值排在其它所有的枚举值前。为了防止意想不到的结果,建议依照字母的顺序定义 ENUM 列表。也可以通过使用 GROUP BY CONCAT(col) 来确定该以字母顺序排序而不是以索引值。

如果希望得到一个 ENUM 列的所有可能值,可以使用 SHOW COLUMNS FROM table_name LIKE enum_colum

humen1 Tech

ime-mode : auto active inactive disabled

参数:
auto : 不影响IME的状态。与不指定ime-mode属性时相同
active : 指定所有使用IME输入的字符。即激活本地语言输入法。用户仍可以撤销激活IME inactive : 指定所有不使用IME输入的字符。即激活非本地语言。用户仍可以撤销激活IME disabled : 完全禁用IME。对于有焦点的控件(如输入框),用户不可以激活IME

humen1 Tech

Access2MySQL Pro is a reliable bi-directional database migration tool which allows you to convert from:

MS Access to MySQL
MS Access to MySQL Dump
MS Access to PHP Script
MS Access to MS Access
MySQL to MS Access
MySQL to MySQL.
MySQL to MySQL Dump
MySQL to PHP Script
Convert databases from MS Access to MySQL or from MySQL to MS Access rapidly and reliably! Operate with a whole database or select only needed tables, fields, indexes and foreign keys to proceed! Reach the desired result by simply configuring of several options through Wizard interface or in command line mode! Access2MySQL Pro is also applicable for MySQL database migration to another MySQL database or to MySQL server. Moreover, Access2MySQL is quite well for copying MS Access database to another MS Access database.

Name: Jan Ladendorf
Company:
E-Mail: [email protected]
A52GFRQB>AXMGGC7617RUB1AO47Z61B0XPYK214T8LIM

humen1 Tech

今天又发现一招

用标签把控件包起来。在中加如链接的js

例:

humen1 Tech

今天发现scrollbar的各项属性不被ie5.5以下,以及netscape6.0 and 7.0 支持

微软创造了不同世界许多不同标准,css也是!

humen1 Tech

我们的team组成了

要走的路还太长,
只能说我终于迈出了一步,自己觉定的一步。
虽然有些波折,但是我看好这个项目。
中国啊,一个神奇的市场,我们做我们的,在这个巨大的市场里总有我们的位置。

humen1 Tech

0%