MYSQL中 ENUM 类型的 查询坑点

**MySQL ENUM类型:小而美的数据约束利器,你用对了吗?** MySQL ENUM类型:高效数据约束解决方案 ENUM是MySQL中针对固定选项的高效数据类型,通过内部数字存储实现空间优化和性能提升。实测显示,在处理100万条数据时,ENUM比VARCHAR节省75%存储空间,查询速度提升60%。典型应用场景包括:用户性别(男/女/未知)、订单状态(待支付/已支付/配送中等)以及国际化尺寸编码(XS/S/M/L/XL)。ENUM通过预定义值确保数据完整性,同时支持数字索引查询优化性能。使用时需注意合理设计选项顺序和数量,避免频繁修改ENUM定义。 阅读详情

CREATE TABLE `address` (
  `is_default` enum('0','1') NOT NULL DEFAULT '0' COMMENT '1默认收货地址',
) ENGINE=InnoDB AUTO_INCREMENT=8196 DEFAULT CHARSET=utf8 COMMENT='买家地址信息表';

 

查询条件是enum类型的字段时,如果是想比较emun值就要传字符串,enum类型每个枚举的值都会有个隐形的索引,如果比较的值是整型将会引用enum索引对应的值,enum的索引以1开始,enum可以类比成PHP这样的索引数组

[
    1 => '0', 枚举值为0
    2 => '1', 枚举值为1
]

以上数据表结构为查询实例:

where is_default = 1 //实际上在查询时会转换为where is_default = '0'
where is_default = 2 //实际上在查询时会转换为where is_default = '1'
where is_default = '0' //实际上在查询时会转换为where is_default = '0'
where is_default = '1' //实际上在查询时会转换为where is_default = '1'

 

听说enum字段插入值为整数时荟报错,有待查证。https://blog.youkuaiyun.com/u012643122/article/details/52643686

参考资料:https://www.cnblogs.com/skillCoding/archive/2012/03/14/2395404.html

 

开关电源EMI优化秘籍:三明治绕法如何让你的产品通过认证测试 本文深入解析了开关电源EMI优化中的三明治绕法,详细阐述了其通过改变绕组排布来减小初次级寄生电容、降低共模噪声的核心机理。文章提供了从绕制结构选择、绝缘安规处理到实测验证的全流程实战指南,帮助工程师有效利用这一工艺,提升产品通过CCC、CE等EMI认证测试的成功率。 阅读详情

相关推荐

滤波算法-呼吸心跳信号检测方法(四)

呼吸心跳信号检测系列文章:信号滤波处理

yjh_2019的博客 6268

Mysql 中 ENUM 的用法

ENUM是一个字符串对象,表示从允许的字符串值列表中选择的单个值。定义ENUM字段时,需要指定该字段可以接受的所有可能值。ENUM是MySQL中一种非常有用的数据类型,尤其适合存储预定义的、有限的字符串值。它通过确保字段值只能是预定义的集合中的一个值,帮助维护数据的完整性。ENUM在存储空间和查询效率方面也具有一定的优势。然而,ENUM类型也有其局限性,例如扩展性不强、排序固定、一次只能选择一个值等。因此,选择ENUM类型时,需要根据具体的应用场景和需求权衡其优缺点。

Flying_Fish_roe的博客 2563

SAP成本核算变式OKKN配置详解:从CK11N到CK24,手把手教你搞定标准成本发布

本文深入解析SAP成本核算变式OKKN的配置原理与实战应用,涵盖从CK11N到CK24的标准成本发布全流程。详细讲解数量结构控制、价值结构配置及间接费用计算规则,帮助成本会计精准掌握标准成本计算逻辑,解决BOM版本选择、工艺路线获取等常见问题,提升企业成本管理效率。

weixin_27219587的博客 285

MySQL的enum类型的踩坑记录

在使用mysql的enum类型时踩坑经验分享。

程序员无为的博客 827

9.9华为OD机试真题 新系统 - 受限任务分配 (Java/Py/C/C++/Js/Go)

华为OD机试真题 新系统【受限任务分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【受限任务分配】多语言题解。

qq_45776114的博客 724

Cadence OrCAD Capture 原理图中创建差分对约束的两种常用方法

本文介绍在原理图设计阶段,添加差分对的方法。

fydar的博客 3930

枚举Enum类的通用查询

枚举Enum类的通用查询,简单易用

creaylei的小花园 3293

GIS常用符号化色带(超级色带)根据python制作

GIS自带的色带比较单一,今天分享一款色带,应用之后大家出图的时候可以选择更多的配色,符号化/点击色块/样式引用/将样式添加至列表即可。色带类型比较多,大家可以自己尝试下不同的风格。简单符号化一下,看看效果。以中国县级行政区划为例,

J_Giser的博客 2637

Mybatis 查询语句条件为枚举类型时报错处理

通常我们对于数据库中一些枚举字段使用tinyInt类型,而java对象对应的字段很多时候会为了方便定义成short或者int。但这样显然不美观方便,让后面维护的人抠破脑袋找你的常量定义在哪儿,要是没有注释简直让人崩溃。时间久后,没有人知道这里面的值。只能一行行读源码。 优雅的程序员当然想到了优雅的枚举,而mybatis“强大”的枚举类型处理器EnumOrdinalTypeHandler相信都不陌生。 然而配置枚举处理器花了九牛二虎之力改好原来的mapper运行测试用例全在报错。而插入、部分查询却没报错。

ttaannkkee的博客 2398

docker-compose Install OrangeHRM

OrangeHRM是一个全面的人力资源管理HRM) 系统,它包含任何企业所需的所有基本功能。OrangeHRM旨在支持任何规模的团队,包括初创企业、中小企业以及大型跨国组织。

极致,细节 1003

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MySQL列的默认值(default)的研究

文章目录写作背景版本说明官方文档中的说明显式默认值隐式默认值数据类型的默认值sql_mode与strict_mode查看sql_mode设置sql_mode测试总结 文章开始之前先思考一下,假设MySQL中有一张如下的表 CREATE TABLE student ( `name` VARCHAR(20) NOT NULL COMMENT '姓名', `age` INT NOT NULL DEFAULT 18 COMMENT '年龄' ); 其中name以及age列都为NOT NULL,不同的是age有

笔墨的专栏 5019

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

第24章:SQLAlchemy自定义类型与方言差异

摘要 本文探讨了在数据库开发中如何通过SQLAlchemy的自定义类型系统解决两个实际问题:JSON字段查询效率低下和敏感数据加密逻辑分散。文章采用剧本式对话形式,生动展现了开发团队如何发现并解决这些问题。 核心内容: 通过TypeDecorator实现加密字段类型,自动处理加解密逻辑,确保数据安全 针对PostgreSQL的JSONB类型封装专用查询操作符,提升查询性能 比较了UUID/ENUM/JSON在不同数据库中的方言差异及处理方案 提供了实战代码示例,包括加密字符串类型实现和JSONB操作符封装.

davidwang456的专栏 334

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

在Mysql中的Enum数据类型

Mysql中的enum类型就是我们常说的枚举类型,它的取值范围需要在创建表时通过枚举方式(一个个的列出来)显式指定。对1至255个成员的枚举需要1个字节存储;对于255至65535个成员,需要2个字节存储。最多允许有65535个成员。enum底层存的是十进制整数,严格按顺序1,2,3,4,5…排列,固千万不要用enum来存数字。有时候可以使用枚举代替常用的字符串类型,枚举列可以把一些不重复的字符串存储成一个预定义的集合,MySQL在存储枚举时非常紧凑,会根据列表值的数量压缩到1个或2个字节中。MySQL在内

科技互联网领域深度探索者,乐于分享与写作。 2万+

MySQl 数据类型 ENUM 和 SET

MySQl 数据类型 ENUM 和SET ENUM, SET 为 MySQl 中的字符串数据类型,相较于CHAR,VARCHAR 这类随意插入任意字符的字符串类型,ENUM, SET 为 只能在指定的集合里取值 的字符串数据类型。 ENUM(枚举值) 1. 单选字符串数据类型 适合存储表单界面中的“单选值”,也就是只能取一个值。 2. 设定ENUM的时候,需要给定 “固定的几个选项”,存储...

路漫远 吾求索 5458

MySQL 中的 SET 与 ENUM 类型使用详解

MySQL 中的 SET 与 ENUM 类型使用详解 一、SET类型 在创建表时,就指定SET类型的取值范围。 属性名 SET('值1','值2','值3'...,'值n') 其中,“属性名”参数指字段的名称;“值n”参数表示列表中的第n个值,这些值末尾的空格将会被系统直接删除。其基本形式与ENUM类型一样。SET类型的值可以取列表中

kxjrzyk的专栏 2万+

MySQL 中 ENUM 的用法是什么

ENUM是 “enumeration” 的缩写,用于定义具有一组预定义值的字符串类型字段。每个ENUM类型的字段可以保存一个枚举值列表中的值,且每个字段最多只能存储其中的一个值。定义ENUMCREATE TABLE 表名 (字段名 ENUM('值1', '值2', ..., '值N') [NOT NULL | NULL] DEFAULT '默认值'字段名是定义为ENUM类型的字段名称。'值1', '值2', ..., '值N'是枚举类型的可能值列表,每个值是一个字符串。指定字段是否允许NULL。

Flying_Fish_roe的博客 6346

关于 mysql 枚举类型(enum) 的说明

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、插入测试二、查询测试 前言 ENUM中文名称叫枚举类型,它的值范围需要在创建表时通过枚举方式显式指定,对1~255个成员的枚举需要1个字节存储;对于255~65535个成员,需要2个字节存储。最多允许有65535个成员。下面往测试表t中插入几条记录来看看ENUM的使用方法 MySQL版本:5.7 # 表结构说明: CREATE TABLE `test_gender` ( `id` int(11) NOT NULL A

weixin_43725548的博客 2万+

MySQL数据类型 ENUM和SET

MySQL数据类型 ENUM和SET

快递小可的博客 7123

mysql:列类型之enum、set

环境: window10 vs2022 .net 6 mysql 8.0.25 DBeaver 参考: 《mysql:11.3.5 The ENUM Type》 1. enum类型 mysql支持枚举类型,即:只能从其中选择一个值插入到数据库。 用法如下: create table test( t_enum set('刘备','刘禅','张飞') ) insert into test(t_enum) values('刘备') mysql中的enum和c#中的枚举很相似,但它也有自己的特点: m

火焰 7380

臭名昭著的 MySQL ENUM 类型 ( 下 )

作者简介:大家好,我是码炫码哥,前中兴通讯、美团架构师,现任某互联网公司CTO,兼职码炫课堂主讲源码系列专题代表作:《jdk源码&多线程&高并发》,《深入tomcat源码解析》,《深入netty源码解析》,《深入dubbo源码解析》,《深入springboot源码解析》,《深入spring源码解析》,《深入redis源码解析》等联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬。

smart_an的专栏 1026

MySQL中的enum和set类型

文章目录1 enum类型2 set类型 1 enum类型 ENUM类型又称为枚举类型。在创建表时,ENUM类型的取值范围以列表的形式指定,其基本形式如下: 属性名 ENUM('值1', '值2', …, '值n') 其中,“属性名”参数指字段的名称,“值n”参数表示列表中的第n个值。ENUM类型的值只能取列表中的一个元素。其取值列表中最多能有65535个值。如果数据值列表在255个以内,那么一个字节就够,如果超过255但是小于65535,那么系统采用两个字节保存。列表中的每个值独有一个顺序排列的编号,M

木子皿--啥都不会的菜鸟 1281

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

mysql中的枚举类型ENUM的用法:(2010-06-18 13:44:13)mysql中的枚举类型ENUM的用法:mysql中的枚举类型ENUM是一个字符串对象,它的值是自表创建时在列规定中显式枚举的一列值。在某些情况下,ENUM值也可以为空字符串('')或NULL:如果你将一个非法值插入ENUM(也就是说,允许的值列之外的字符串),将插入空字符串以作为特殊错误值。该字符串与“普通”空字符串不...

weixin_32656107的博客 4758

mysql create table enum,详解MySQL数据类型之枚举类型ENUM的用法

摘要 腾兴网为您分享:详解MySQL数据类型之枚举类型ENUM的用法,中日翻译,先游,民宿客栈,蜜蜂查等软件知识,以及3dmax7,sql2005数据库,心田花开在线,联想服务,联想笔记本电池校正,可视化网页设计软件,w3school离线手册,乐家购物,卡管器,甜甜爱礼司,极简桌面,一折购,龙城在线,优品购,奇艺果等软件it资讯,欢迎关注腾兴网。本节主要内容: MySQL数据类型之枚举类型ENUM...

weixin_31907307的博客 1015

mysql 字段类型总结----decimal,alter,enum

mysql decimal 测试使用 mysql 字段操作添删改 添 alter table field_test add decimal_test decimal(3,2) after text_test; 删 alter table icecream drop column flavor ; 改 alter table icecream change taste flavo

写代码的小孩 1万+
上一篇: PHP(匿名函数)闭包可以从父作用域中继承变量
下一篇: PHP执行外部服务命令(git)失败
php_sir
博客等级 码龄14年 3粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值