当前位置: 首页 > news >正文

高端视觉网站/怎样做品牌推广

高端视觉网站,怎样做品牌推广,擦边球网站怎么做,南京便宜网站建设2019独角兽企业重金招聘Python工程师标准>>> 使用枚举(ENUM)代替字符串类型 有时候可以使用枚举代替常用的字符串类型,枚举列可以把一些不重复的字符串存储成一个预定义的集合,MySQL在存储枚举时非常紧凑,会…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

使用枚举(ENUM)代替字符串类型

有时候可以使用枚举代替常用的字符串类型,枚举列可以把一些不重复的字符串存储成一个预定义的集合,MySQL在存储枚举时非常紧凑,会根据列表值的数量压缩到1个或2个字节中。MySQL在内部会将每个值在列表中的位置保存为整数,并且在.frm文件中保存“数字-字符串”映射关系的“查找表”。

下面用一个实例说明相关操作和事项

① 新建一个枚举列测试表

CREATE TABLE `enum_test`  (`id` int(6) NOT NULL AUTO_INCREMENT,`e` enum('男','女') CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,PRIMARY KEY (`id`) USING BTREE
)

② 插入数据

INSERT INTO `enum_test`(e) VALUES(1),(2);
INSERT INTO `enum_test`(e) VALUES('男'),('女');
INSERT INTO `enum_test`(e) VALUES(1),('1'),('女'),(0);

这三种插入方式都OK,0也可以插入,插入的是一个空字符串'', 而插入的‘数字’也是可以的

当插入的数字或字符串不在枚举范围内,则会用0或空字符串代替

③ 查询数据

SELECT * from `enum_test`  

查询的结果如下:

e29a1427c664f479b6da150f45bcf833aa0.jpg

查询时,通过 “列名+0” 即可获取改值在枚举中的位置关系,如下吗的SQL语句

SELECT id,e,e+0 from `enum_test`  

查询结果
adeb05363d4a0404b6a4e5554aa183b5263.jpg

使用起来跟方便,比如存取数字和对应的字符串时,避免了case when 转换;

 注意:enmu列字符串无法通过order by 排序 

SELECT id,e,e+0 from `enum_test`  ORDER BY e DESC

查询的结果是通过枚举的位置就行排序的,如下图所示

aed1d76ac228bed576bbf551221a685b587.jpg

④ 修改枚举

ALTER TABLE   `enum_test`  MODIFY COLUMN `e`  enum('男','女','未知');
INSERT INTO `enum_test`(e) VALUES(3);
SELECT id,e,e+0 from `enum_test` ; 

在枚举字符串后面添加新的字符串,不影响之前的数据

2f1891f63d8abcb507b7a67c066156cda79.jpg

 在枚举的字符串中间或前面加入新的字符串,会对之前的数据产生影响;位置不变时,改变之前的字符串的信息,之前的数据 “e+1”的值不会产生变化 

ALTER TABLE   `enum_test`  MODIFY COLUMN `e`  enum('男','未知','女');
SELECT id,e,e+0 from `enum_test` ; ALTER TABLE   `enum_test`  MODIFY COLUMN `e`  enum('未知','男','女');
SELECT id,e,e+0 from `enum_test` ; 

在枚举的中间插入数据,结果如下图

ef329d41c701715fea1828a6779d1a6d59c.jpg

在枚举最前面插入数据,结果如下图

5774029ea137aff89c0d6c2874d0c5f106d.jpg

位置不变,修改枚举字符串信息 或 减少枚举字符串现有的数量 ,数据会产生不可逆变化,绝对禁止这样的操作

ALTER TABLE   `enum_test`  MODIFY COLUMN `e`  enum('男','女1');
SELECT id,e,e+0 from `enum_test`;
-- 改回去之后,数据已经发送不可逆转破坏,无法找回之前的数据了
ALTER TABLE   `enum_test`  MODIFY COLUMN `e`  enum('男','女' );
SELECT id,e,e+0 from `enum_test`  

两次查询的结果都如下图所示

530a1e2baa02039f7ba115846c98fa6b515.jpg

⑤ 修改枚举列的数据的值

update  `enum_test`  set e = '男' where id=7;
update  `enum_test`  set e = 1 where id=8 ;
update  `enum_test`  set e = '1' where id=8 ;
SELECT id,e,e+0 from `enum_test`  ;

查询的结果如下图所示

c27285f2ef95d64bd44334a598d872611a2.jpg

结果显示,枚举列数据的修改同插入的传值方式一样,挺方便的

总结

采用枚举列处理select标签或redio标签的下拉数据的数据很方便,在处理用数字替代字符串的字段数据时,比 case when 的处理方式,快捷有效!

但是它也有致命的缺陷,不能减少或修改(包括修改现有的枚举字符串信息、在中间或最前面插入新的字符串)现有的枚举列表,只能在后面新增枚举字符串信息

对于一些了未来可能会改变的字符串,使用枚举不是一个好主意

转载于:https://my.oschina.net/u/3374461/blog/1933147

http://www.lbrq.cn/news/935893.html

相关文章:

  • seo网站优化报价/网站域名备案查询
  • 网站 刷流量/360收录提交入口网址
  • 播放视频网站怎么做/电脑清理优化大师
  • 做一元购网站会被封吗/网络平台怎么推广
  • 潜江资讯网二手房出售/优化方案官方网站
  • 网站后台程序怎么做/seo工具查询
  • 学营销app哪个更好/长沙seo网站管理
  • 漳州网站建设公司/什么平台免费推广效果最好
  • 手机网站最小宽度/怎么宣传自己的产品
  • 橙子建站验证码是干啥的/西安竞价推广托管
  • h5网站建设价格/文章代写
  • wordpress search everything/郑州网站建设专业乐云seo
  • 一个独立IP做几个网站比较合适/找精准客户的app
  • 怎么制作页面模板/旺道seo营销软件
  • 聊城企业做网站/关键词seo是什么
  • 可以做网站的软件/怎么做百度搜索排名
  • 手机版网站源码/网络舆情处理公司
  • 阿里网站官网入口/成都sem优化
  • 做网站最流行的语言/谷歌google下载
  • 建筑建设行业网站/百度快速seo
  • 保定 网站/域名注册多少钱
  • 充值网站怎么做的/河南省干部任免最新公示
  • 广东省城乡建设部网站首页/网站自然排名工具
  • 特色的重庆网站推广/南京百度seo
  • 江门制作手机网站/中国宣布取消新冠免费治疗
  • 网站集约化建设流程/贵州百度seo整站优化
  • 泰州 做网站/人民日报最新头条10条
  • 如何屏蔽网站ip/常见的网络推广方法
  • 我想给赌博网站做代理/百度网盘资源搜索引擎
  • 手机端网站建设广告词/网站后端开发
  • 计算器4.0:新增页签功能梳理页面,通过IO流实现在用户本地存储数据
  • 知不足而奋进,望远山而前行。
  • 第17章——多元函数积分学的预备知识
  • 字节跳动开源Coze,开启AI Agent开发新时代?
  • 【重学数据结构】二叉搜索树 Binary Search Tree
  • CentOS网卡未被托管解决记录