mysql null 值查询问题 (转)
来源:互联网 发布:美工电脑配置清单 编辑:程序博客网 时间:2024/05/23 19:11
转自:http://lhdeyx.blog.163.com/blog/static/31819697201101310323558/
我在开发公司内部的一个项目时遇到一个问题:
select student_quality_id from STUDENT_QUALITY where mark_status=0 and batch_stauts in (2,3)
结 果遇到一直找不到符合条件的student_quality_id ,后来才发现没有考虑到null值的问题,修改成 select student_quality_id from STUDENT_QUALITY where (mark_status=0 or mark_status IS NULL) and batch_stauts in (2,3) 就OK了,下面是我从MySql手册上摘录的关于NULL值的处理。
NULL值的概念是造成SQL的新手的混淆的普遍原因,他们经常认为NULL是和一个空字符串''的一样的东西。不是这样的!例如,下列语句是完全不同的:
mysql> INSERT INTO my_table (phone) VALUES (NULL);
mysql> INSERT INTO my_table (phone) VALUES ("");
两个语句把值插入到phone列,但是第一个插入一个NULL值而第二个插入一个空字符串。第一个的含义可以认为是“电话号码不知道”,而第二个则可意味着“她没有电话”。
在SQL中,NULL值在于任何其他值甚至NULL值比较时总是假的(FALSE)。包含NULL的一个表达式总是产生一个NULL值,除非在包含在表达式中的运算符和函数的文档中指出。在下列例子,所有的列返回NULL:
mysql> SELECT NULL,1+NULL,CONCAT('Invisible',NULL);
如果你想要寻找值是NULL的列,你不能使用=NULL测试。下列语句不返回任何行,因为对任何表达式,expr = NULL是假的:
mysql> SELECT * FROM my_table WHERE phone = NULL;
要想寻找NULL值,你必须使用IS NULL测试。下例显示如何找出NULL电话号码和空的电话号码:
mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = "";
在MySQL中,就像很多其他的SQL服务器一样,你不能索引可以有NULL值的列。你必须声明这样的列为NOT NULL,而且,你不能插入NULL到索引的列中。
当用LOAD DATA INFILE读取数据时,空列用''更新。如果你想要在一个列中有NULL值,你应该在文本文件中使用N。字面上的词'NULL'也可以在某些情形下使用。见7.16 LOAD DATA INFILE句法。
当使用ORDER BY时,首先呈现NULL值。如果你用DESC以降序排序,NULL值最后显示。当使用GROUP BY时,所有的NULL值被认为是相等的。
为了有助于NULL的处理,你能使用IS NULL和IS NOT NULL运算符和IFNULL()函数。
对某些列类型,NULL值被特殊地处理。如果你将NULL插入表的第一个TIMESTAMP列,则插入当前的日期和时间。如果你将NULL插入一个AUTO_INCREMENT列,则插入顺序中的下一个数字。
- mysql null 值查询问题 (转)
- mysql not in null 子查询问题
- mysql null 值问题
- mysql null值问题
- MySQL 字段值为 null,但查询时用 is null 没用的问题
- MySQL 字段值为 null,但查询时用 is null 没用的问题
- mysql NULL 值求和问题
- Mysql的NULL值问题
- MYSQL查询空值/NULL值
- MySql中null查询
- mysql 查询null
- SQL Server 查询时NULL值问题
- 查询数据库,处理NULL值问题
- 查询数据库,处理NULL值问题
- Mysql插入NULL值的问题
- MySQL与NULL值有关的问题
- 关于mysql null 值的一些问题
- mysql查询时给值为null的设置默认值
- 用SQL读取CSV文件
- Android 正则表达式学习
- VS2010 VC++默认目录修改
- 在联网的多台机器上安装、配置MPI 并行环境
- qt 读写 xml 时,链接错误
- mysql null 值查询问题 (转)
- 读取出来的图片地址转换成http开头的格式
- 线程池 ThreadPoolExecutor
- c#调用C++ 写的DLL(带CALLback函数)
- [转]各种开发管理工具简介
- Ubuntu关机重启命令简介
- 从L2层抓包的两个问题
- ASP.NET 路径问题
- Android中gravity与layout_gravity的区别