mysql 字段值不同枚举_【mysql】关于枚举值 '1','0'的神奇判断
背景与探索
最近在做一个简单的用户信息的查询及展示,其中在对用户性别判断的时候,出现了一个神奇的情况,首先数据库里有个表存储了性别字段 sex ,字段类型是:enum('0','1') DEFAULT NULL COMMENT '性别(0/女,1/男)'
整体表结构如下:
CREATE TABLE `user` (
`userid` int(10) unsigned NOT NULL COMMENT '登录账号ID',
`sex` enum('0','1') DEFAULT NULL COMMENT '性别(0/女,1/男)'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='个人基础信息';
表中数据如下:
image.png
然后写了个简单的sql来判断男女,如下:
SELECT userid,if(sex=1,'男','女') as '性别' from user
image.png
发现显示的结果跟数据库存储的是完全相反的,但是的第一反应是不是判断反了,结果反复核实了几遍并没有判断反,然后看数据库存储的字段是枚举,心里想着说是不是类型问题导致的,结果将sex=1改成sex=‘1’,结果就对了,sql如下:
SELECT userid,if(sex='1','男','女') as '性别' from user
image.png
结论与总结
从上面的例子中我们知道,mysql对字符型的判断不能直接转换成数字,必须要跟对应的字符比较才能得到正确的结果,这个问题是平时很少注意到的问题,但是为什么当sex的值是'1'与1比较是false,sex值是'0'与1比较是true这个目前还没有搞清楚原理。
mysql 字段值不同枚举_【mysql】关于枚举值 '1','0'的神奇判断相关推荐
- mysql字段中有逗号隔开_在MySQL字段中使用逗号分隔符
大多数开发者应该都遇到过在mysql字段中存储逗号分割字符串的经历,无论这些被分割的字段代表的是id还是tag,这个字段都应该具有如下几个共性.被分割的字段一定是有限而且数量较少的,我们不可能在一个字 ...
- mysql 5 7 教程视频_[MySQL] MySQL 5.7从入门到精通视频教程
资源介绍 目录 ├─MySQL常用命令大全.pdf ├─视频教程 │xa0xa0├─第10讲 存储过程和函数 │xa0xa0│xa0xa0├─10.1xa0xa0创建存储过程和函数.avi │xa0x ...
- mysql数据库访问问题吗_#MySQL数据库无法远程访问的问题
在 Ubuntu上装了mysql,因为项目的数据库是mysql,将项目放在tomcat里面webapp下面,一直启动不成功.本来一直以为是jdbc驱动问题,后来发现不是. 1.cd /etc/mysq ...
- mysql 单机双实列_{ mysql } MySQL单机多实例及主从复制
没有过多的,直接上码 my.cnf [mysql_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin user ...
- c++ main函数调用 类中的枚举_为啥用枚举,枚举有哪些用法?
Java基础:枚举的用法与原理 在学习过程中,我们也只是在定义常量的时候,会意识到枚举的存在,而定义常量其实可以在类中实现,这时就会感觉枚举有点鸡肋.但在实际项目开发的过程中,枚举因相当迷人的特性而受 ...
- java查询枚举_查找Java枚举的最佳实践
查找Java枚举的最佳实践 我们有一个REST API,客户端可以在其中提供表示Java Enums中服务器上定义的值的参数. 因此,我们可以提供一个描述性错误,我们将此valueOf(..)方法添加 ...
- mysql字段名大写好处_数据库的表名字段名大小写问题
今天发现它真的是一个问题. 拿我最喜欢的Oracle来说吧.一般情况下,建表不管大小写,建完表名.字段名总是大写的,这样你不得不在单词之间加下划线,从而增加了字段名长度,有时就超长了.在select的 ...
- mysql某一列 赋值_[MySQL]定时把某一列值赋值给另一列
前言 在做项目的时候需要根据用户的积分做一个排名和排名趋势(上升.下降或持平),首先,从排名趋势上分析,我的想法是,今天的排名(ranking)和昨天排名(oldranking)进行对比,然后给出趋势 ...
- 定义mysql字段的编码模式_在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式。...
最近看了一下KIGG框架,发现在用EF + MYSQL数据库时,数据出现了乱码,用工具(Navicat )查看一下表category的结构发现 KIGG 数据库的默认情况是用latin1编码的(DEF ...
最新文章
- 使用Python,OpenCV制作图像Mask——截取ROIs及构建透明的叠加层
- 逆向工程、软件后门……原来美剧《硅谷》里藏着这么多知识点
- Android中实现滑动翻页—使用ViewFlipper
- linux多线程简介
- Vue-cli 自定义配置
- python改文件名_python 怎么改文件名
- Focus Stacking
- MFC API——》WM_NCHITTEST、OnNcHitTest (CPoint point) 点击鼠标时产生的消息
- 第三章 动态规划-基于模型的RL-强化学习理论学习与代码实现(强化学习导论第二版)
- 冒烟测试正确名称是踩雷测试,雷区测试
- C# 获取当前执行程序路径 获取路径 上上层目录 上层目录
- c++ 关于指针以及(amp;)使用的一些小问题
- 用Java实现md5加密
- 定时任务corn表达式设置
- 微信视频强制分享观看源码 微信流量裂变源码吸粉变现源码
- 计算机方面发什么类型的论文,计算机类本科毕业论文
- 3.1 电磁干扰EMI
- make config解惑
- XSS-lab通关记录
- 毕业论文管理系统(类图、ER图)、时序图