在用MySQL查询数据的时候,遇到了一个奇怪的问题。用一个varchar类型的字符串str,作为条件与0比较时,会查str不为0的数据。

比如:SELECT id, idnumber from hr_student where idnumber = 0;会查到idnumber 为'0','身份证',''等数据。不符合查询的条件啊。

原因如下:

MySql在比较varchar类型和0的时候,会把varchar类型转换成数字0

所以用idnumber =0作为条件时,会把以0开头的字符串和普通字符串都转换成0。(比如:0abc,0,abc,身份证号码)

只排除一些以非0开头的字符串。(比如:1abc)

同理,查询str=1的数据,也会排除开头非1的字符串。

MySql数据库,对varchar类型字段str进行where str=0条件查询时,查询结果是什么的更多相关文章

  1. MySQL数据库中tinyint类型字段读取数据为true和false

    今天遇到这么一个问题,公司最近在做一个活动,然后数据库需要建表,其中有个字段是关于奖励发放的状态的字段,结果读取出来的值为true 一.解决读取数据为true/false的问题 场景: 字段:stat ...

  2. MySQL数据库中tinyint类型字段读取数据为true和false (MySQL的boolean和tinyint(1))

    数据库一个表中有一个tinyint类型的字段,值为0或者1,如果取出来的话,0会变成false,1会变成true. MySQL保存boolean值时用1代表TRUE,0代表FALSE.boolean在 ...

  3. MySQL如何把varchar类型字段转换成int类型进行倒叙排序

    SELECT * FROM sheet2 t1 WHERE t1.`金额`+'0' ORDER BY t1.`金额` DESC;

  4. 关于MySql中的varchar类型

    今天新开始的项目在做数据库设计,发现自己对MySql的varchar类型还不熟悉,故又上网收集资料整理如下. 1.varchar类型的变化 MySQL 数据库的varchar类型在4.1以下的版本中的 ...

  5. MySql学习之varchar类型

    MySQL 数据库的varchar类型在4.1以下的版本中的最大长度限制为255,其数据范围可以是0~255或1~255(根据不同版本数据库来定),在 MySQL5.0以上的版本中,varchar数据 ...

  6. MySql中的varchar类型

    转载:http://www.cnblogs.com/doit8791/archive/2012/05/28/2522556.html 1.varchar类型的变化 MySQL 数据库的varchar类 ...

  7. MySQL数据库修改字段名、字段类型、字段长度

    1.MySQL数据库中,修改字段SQL如下: alter table AppVersion change version versionCode varchar() DEFAULT NULL COMM ...

  8. Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...

  9. mysql数据库user表host字段的%问题

    搜索: mysql数据库user表host字段的%问题 连接:http://blog.csdn.net/xiaomengh/article/details/48706149 在mysql数据库中,使用 ...

  10. java的Date类型转换为MySQL数据库的Date类型

    最近遇到一个问题,需要把java中的日期类型存放为MySQL数据库的日期类型,两个日期之间需要进行转化才能进行存储,转化代码如下: package com.alphajuns.demo1; impor ...

随机推荐

  1. java.lang.NoSuchMethodError: org.springframework.dao.IncorrectResultSizeDataAccessException

    spring data jpa  运用,在dao类中写自己新增的方法,使用@query写hql语句,出现以下异常: Caused by: java.lang.NoSuchMethodError: or ...

  2. 详解C++右值引用

    C++0x标准出来很长时间了,引入了很多牛逼的特性[1].其中一个便是右值引用,Thomas Becker的文章[2]很全面的介绍了这个特性,读后有如醍醐灌顶,翻译在此以便深入理解. 目录 概述 mo ...

  3. 解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!

    1 学习 Nginx 模块开发需要有哪些准备? 需要的预备知识不多,有如下几点: 有过一些 C 语言的编程经历: 知道 Nginx 是干嘛的,并有过编写或改写 Nginx 的配置文件的经历. OK,就 ...

  4. JAVA本地调用(JNI- java调用c)

    记录一下工作内容,对术语了解不多,暂且这样记着吧.  java调用c 一.写jni的步骤如下: 1.创建java类,定义接口函数,使用native修饰: 2.将java类编译成class: 3.将cl ...

  5. static_cast, dynamic_cast, reinterpret_cast, const_cast区别比较

    隐式转换(implicit conversion) ; int b; b=a; short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如 ...

  6. linux查看操作系统版本信息

    linux查看操作系统版本信息  摘自:https://www.cnblogs.com/vaelailai/p/7545166.html 一.linux下如何查看已安装的centos版本信息: 1.L ...

  7. jenkins持续集成之Global Tool Configuration的配置

    Global Tool Configuration的配置过程: 1.点击系统管理2.点击 Global Tool Configuration3.必须配置: jdk git ant maven 1.点击 ...

  8. linux 删除文件,某个文件例外

    # shopt -s extglob      (打开extglob模式) # rm -fr !(file1)

  9. YII2 选择布局

    方案1:控制器内成员变量 public $layout = false; //不使用布局 public $layout = "main"; //设置使用的布局文件 方案2:控制器成 ...

  10. Codeigniter框架前后台部署(多目录部署)

    个网站一般包含前台和后台并且访问的url是不同的,Codeigniter怎么来部署呢? 在网上看到了一篇比较好的文章: 在下载好的ci的根目录建立一个目录 admin 将application目录中的 ...