MySql enum字段使用问题
来源:互联网 发布:android 与js交互 编辑:程序博客网 时间:2024/06/05 04:53
今天在对MySQL数据库一张表进行query操作时遇到一个问题,原因竟然是因为表中使用了enum字段,特此记录之。
mysql中使用enum字段设置字段的区间范围,让数据库很好地控制字段的值,但是也有他的弊端,如数据迁移的时候几乎不可能被其他数据库所支持以及接下来笔者想要说明的问题。
1.首先新建一张表,这里用了两个enum字段,flag与flag2
CREATE TABLE `wTest` (
`num` int(11) default NULL,
`stu_name` varchar(20) default NULL,
`flag` enum('0','1','2','3','4') NOT NULL,
`flag2` enum('6','7','8','9') default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
2.插入数据,select得:
3.select/update/insert操作
select * from wTest where flag=4,结果:
这里flag变成了3? why?原因是这里where条件的flag=4被当成enum枚举字段的索引了,`flag` enum('0','1','2','3','4') ,因为枚举索引是从1开始的,so index=4时flag=3. 若想要查找flag=4的数据,则只需在where条件中将枚举字段值加上单引号,即' '。
select * from wTest where flag='4',结果:
为了避免不必要的麻烦最好不要使用enum字段,今天也是弄了好久,后面desc tablename才发现有个enum字段,之前的select语句都没加上' '
- MySql enum字段使用问题
- MySql enum字段使用问题
- mysql enum类型字段
- 慎用mysql的enum字段
- 慎用mysql的enum字段
- Nhibernate中使用enum字段
- mysql 字段类型总结----decimal,alter,enum
- 关于Mysql的Enum和Set字段类型
- 关于mysql中enum数据字段类型的一些想法!!
- mysql 查询使用*和具体字段的问题
- mysql timestamp 字段使用
- mysql-enum
- protobuf 使用enum时的问题
- PHP显示Mysql字段问题
- mysql字段长度的问题
- MySQL timestamp字段插入问题
- mysql 时间字段类型使用
- enum使用
- 使用Bottom Navigation Activity实现Android底部导航栏
- c/c++标准库-stdlib.h
- Android 02 shape自定义图形工具
- CC2640R2F BLE5.0 CC2640R2F 传感器控制器(Sensor Controller)
- (小工具)Java反射机制实现任意对象集合排序并且获取排列名次的通用程序实践
- MySql enum字段使用问题
- hihocoder第九十六周 数论五·欧拉函数
- shell脚本中字符串截取的方法
- Json的使用
- 数据结构之哈夫曼树、红黑树
- [微信小程序] rich-text富文本
- 自定义view画一个圆点击可以拖动
- (转)Qt Model/View 学习笔记 (一)——Qt Model/View模式简介
- hibernate相关配置(较全)