• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > mysql中IFNULL,IF,CASE的区别介绍

mysql中IFNULL,IF,CASE的区别介绍

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql中ifnull,mysql ifnull,mysql ifnull函数,mysql select ifnull,mysql中ifnull的用法等相关知识,希望本文的分享对您有所帮助
假设有一数据表的状态字段设计为varchar类型,有以下值:NULL,pending,pending refund,refund,cancel.
我们知道查询状态为cancel的订单,SQL语句可以这样写:SELECT o.oid,o.moneyreceipt,o.moneyget,o.thecurrency,o.status FROM qorder o WHERE o.status = 'cancel'
SQL语句能查询出正确的数据,但是当我们想查询状态为非cancel的订单时,可能会出麻烦, 因为status字段没 有设置NOT NULL,所以大部分订单的status值都是NULL,这样的话,用'<>'查询出来的数据不正确,只有status除了cancel之外的非空数据查询出来了,而为NULL的没有查询出来。SELECT o.oid,o.moneyreceipt,o.moneyget,o.thecurrency,o.status FROM qorder o WHERE o.status <>'cancel'原 因:NULL值操作
NULL值可能令人感到奇怪直到你习惯它。概念上,NULL意味着“没有值”或“未知值”,且它被看作与众不同的值。为了测试NULL,你不能使用算术比较 操作符例如=、<或!=。为了说明它,试试下列查询:mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
+----------+-----------+----------+----------+
| 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
+----------+-----------+----------+----------+
| NULL | NULL | NULL | NULL |
+----------+-----------+----------+----------+
很 显然你不能通过这些比较得到有意义的结果。相反使用IS NULL和IS NOT NULL操作符:mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
+-----------+---------------+
| 1 IS NULL | 1 IS NOT NULL |
+-----------+---------------+
| 0 | 1 |
+-----------+---------------+
请注意在MySQL中,0或 NULL意味着假,而其它值意味着真。布尔运算的默认真值是1。根据以上的NULL值操作结果,最终使用此种方式解决:SELECT o.oid,o.moneyreceipt,o.moneyget,o.thecurrency,o.status FROM qorder o WHERE IFNULL(o.status,'pending') <>'cancel'学习:IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。IFNULL()返回一个数字或字符串值,取决于它被使 用的上下文环境。
上面的例子本人在mysql5.2.6上测试通过=====================================================================================PS:以上是转载的内容,觉得很不错就转过来了,其中的CASE...WHEN...THEN、IF、IFNULL都是常用到的函数eg:SELECT id,username,CASE gender WHEN 1 THEN "男" WHEN 2 THEN "女" END FROM t_people; SELECT b.id,b.book_name,CASE b.type WHEN 1 THEN "计算机" WHEN 2 THEN "会计" ELSE "其它" END FROM book b; </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • mysql中IFNULL,IF,CASE的区别介绍

相关文章

  • 2018-12-05快速插入大量数据的asp.net代码(Sqlserver)
  • 2018-12-05mysql 数据插入优化方法
  • 2018-12-05ORACLE常见错误代码的分析与解决三
  • 2018-12-05MySQL的事务隔离级别实例教程
  • 2018-12-05浅析Oracle 11g中对数据列默认值变化的优化
  • 2018-12-05Mysql-索引覆盖
  • 2018-12-05SQLServer 常用语句(按功能分)
  • 2017-05-11MySQL中InnoDB的Memcached插件的使用教程
  • 2018-12-05SQL SERVER 2008 无法附加数据库的解决方法
  • 2018-12-05Mysql分析-awk+Threads分析状态

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 如何授权查询v$视图
    • SQL Server 不删除信息重新恢复自动编号列的序号的方法
    • 详解MySQL中DROP,TRUNCATE 和DELETE的区别实现mysql从零开始
    • MySQL入门教程2 —— 输入查询及退出查询命令
    • MySQL从MyISAM转换成InnoDB错误与常用解决办法
    • MySQL5.7如何实现双主同步部分表的过程介绍
    • MySQL 数据库的临时文件究竟储存在哪里
    • MySQL配置文件my.cnf优化详解(mysql5.5)
    • sql2005 附加数据库出错(错误号:5123)解决方法
    • mysql提示[Warning] Invalid (old?) table or database name问题的解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有