mysql中的枚举类型ENUM的用法:

(2010-06-18 13:44:13)

mysql中的枚举类型ENUM的用法:

mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中显式枚举的一列值。

在某些情况下,ENUM值也可以为空字符串('')或NULL:

如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不同,该字符串有数值值0。后面有详细讨论。

如果将ENUM列声明为允许NULL,NULL值则为该列的一个有效值,并且 默认值为NULL。如果ENUM列被声明为NOT

NULL,其默认值为允许的值列的第1个元素。

每个枚举值有一个索引:

来自列规定的允许的值列中的值从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

枚举最多可以有65,535个元素。

当创建表时,ENUM成员值的尾部空格将自动被删除。

当检索时,保存在ENUM列的值使用列定义中所使用的大小写来显示。请注意可以为ENUM列分配字符集和

校对规则。对于二进制或大小写敏感的校对规则,当为列分配值时应考虑大小写。

如果在数值上下文中检索一个ENUM值,将返回列值的索引。例如,你可以这样从ENUM列搜索数值值:

mysql> SELECT enum_col+0 FROM

tbl_name;如果将一个数字保存到ENUM列,数字被视为索引,并且保存的值是该索引对应的枚举成员。(但是,这不适合LOAD

DATA,它将所有输入视为字符串)。不建议使用类似数字的枚举值来定义一个ENUM列,因为这很容易引起混淆。

例如,下面的列含有字符串值'0'、'1'和'2'的枚举成员,但数值索引值为1、2和3:

numbers

ENUM('0','1','2')根据枚举成员在列定义中列出的顺序对ENUM值进行排序。(换句话说,ENUM值根据索引编号进行排序)。

例如,对于ENUM('a','b'),'a'排在'b'前面,但对于ENUM('b','a'),'b'排在'a'前面。空字符串排在非空字符串前面,并且NULL值排在所有其它枚举值前面。要想防止意想不到的结果,按字母顺序规定ENUM列。还可以使用GROUP

BY CAST(col AS CHAR)或GROUP BY

CONCAT(col)来确保按照词汇对列进行排序而不是用索引数字。

如果你想要确定一个ENUM列的所有可能的值,使用SHOW COLUMNS FROM tbl_name LIKE

enum_col,并解析输出中第2列的ENUM定义。

mysql 枚举 enum用法_mysql中的枚举类型ENUM的用法:相关推荐

  1. mysql timestamp 差值_MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法(两个日期之间的差值)...

    MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法 在应用时,经常要使用这两个函数TIMESTAMPDIFF和TIMESTAMPADD. 一,TIMESTAMPDIFF 语法: ...

  2. mysql中merge的用法_mysql中merge表存儲引擎用法介紹

    mysql中merge表存儲引擎用法介紹: mysql的merge引擎類型允許你把許多結構相同的表合並為一個表.然后,你可以執行查詢,從多個表返回的結果就像從一個表返回的結果一樣.每一個合並的表必須有 ...

  3. json mysql 字段 默认值_MySQL中的JSON类型

    前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...

  4. mysql replace报错_Mysql中replace与replace into的用法讲解

    Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...

  5. mysql获取当月最后一天_mysql中获取本月第一天、本月最后一天、上月第一天、上月最后一天

    mysql获取当月最后一天_mysql中获取本月第一天.本月最后一天.上月第一天.上月最后一天等等 转自: https://blog.csdn.net/min996358312/article/det ...

  6. mysql枚举类型enum用法_mysql中枚举类型之enum详解

    enum类型就是我们常说的枚举类型,它的取值范围需要在创建表时通过枚举方式(一个个的列出来)显式指定,对1至255个成员的枚举需要1个字节存储: 对于255至65535个成员,需要2个字节存储.最多允 ...

  7. java 枚举类型enum ppt,java中的枚举类型——Enum

    日常java编程中,常见用一些静态常量表示一些状态码,特殊含义的标志等,例如: 1 2 3 4 5public class A{ public static final int STATUS_SUCC ...

  8. mysql range用法_MySQL中Explain的用法总结(详细)

    本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...

  9. MySQL中replace主键_Mysql中replace与replace into的用法讲解

    Mysql replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与insert ...

最新文章

  1. Java虚拟机内存模型初步学习
  2. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---43
  3. 【译】Analyzing Token Sale Models
  4. python mysql curros.executemany 批量添加
  5. css框架之960 Grid System 基本原理及使用方法
  6. 正整数的唯一分解定理 c语言,SSOJ2662正整数的唯一分解定理
  7. Google的wiki-map也上线了
  8. 小tips:JS语法之标签(label)
  9. js cookie 的路径以及 Cookie 域
  10. c 语言 时空权衡的计数排序程序,算法设计和分析部分算法伪代码.doc
  11. 汇编语言程序设计实验三
  12. 爬取超星考试题目_2020超星测试题库导入网课答案
  13. 基于WEKA实现时间序列的预测
  14. ZooKeeper服务-一致性、实现
  15. SUPER-VLAN
  16. 视频的编码与传输过程
  17. arnold如何设置鱼眼相机_关于C4D阿诺德的摄像机参数详解
  18. Dynamics 365 OP V9.1启用邮箱失败问题
  19. output delay含义
  20. Class -- 08 -- Parameter类常用方法解析

热门文章

  1. 智慧医疗习1-智慧医疗
  2. jQuery事件处理动画效果
  3. div及iframe滚动条固定为最底端
  4. html5 iframe隐藏滚动条,javascript-加载iframe后如何隐藏父垂直滚动条?
  5. WPF Border设置虚线边框
  6. 启用本地IIS服务器操作
  7. 李开复给中国大学生的第五封信——你有选择的权利
  8. [美术制作流程]魔兽世界角色换装分析
  9. 因为1克能量,我发现了蚂蚁森林背后的灰色产业
  10. ASCⅡ谢尔宾斯基地毯