澳门新葡萄京娱乐网站-澳门新葡萄京888官网-所有平台

热门关键词: 澳门新葡萄京娱乐网站,澳门新葡萄京888官网

CASE的界别介绍_Mysql_脚本之家,MYSQLIFNULL函数的施

作者: MySQL数据库  发布:2019-12-18

举个例子有风姿洒脱数据表的意况字段设计为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,你不能够应用算术比较操作符比方=、 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 <>'cancel'学习:IFNULL 假设expr1不是NULL,IFNULL(卡塔尔(英语:State of Qatar)重返expr1,不然它重临expr2。IFNULL(卡塔尔(英语:State of Qatar)再次回到一个数字或字符串值,决议于它被使 用的上下文情形。 复制代码 代码如下: mysql> select IFNULL; ->1 mysql> select IFNULL; ->0 mysql> select IFNULL; ->10.0000 mysql> select IFNULL; ->'yes'IF如若expr1是TRUE,那么IF(卡塔尔国返回expr2,不然它重临expr3。IF(卡塔尔国重回一个数字或字符串值,决意于它被利用的上下文。 mysql> select IF; -> 3 mysql> select IF; -> 'yes' CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END //那个自家还未悟出咋用,知道的能够留言调换, CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END //那些面试时被人问到了,能够当做条件决断第个回来 result,在那之中value=compare-value。第在那之中风度翩翩旦第三个规范为真,重返result。若无相配的result值,那么结 果在ELSE后的result被再次回到。若无ELSE部分,那么NULL被再次回到。 复制代码 代码如下: mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END; -> "one" mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END; -> "true" mysql> SELECT CASE BINARAV4Y "B" when "a" then 1 when "b" then 2 END; -> NULL 上面包车型地铁例证本身在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;

MYSQLIFNULL函数的使用

下文对MYSQL IFNULL函数的选择举办了详实的陈说,供你参照他事他说加以考察学习,倘使您在MYSQL IFNULL函数使用方面境遇过相符的标题,不妨大器晚成看。

MYSQL IFNULL(expr1,expr2)
固然expr1不是NULL,IFNULL(卡塔尔重临expr1,不然它重回expr2。IFNULL(卡塔尔国重回一个数字或字符串值,决议于它被采纳的上下文情形。
mysql> select IFNULL(1,0);
-> 1
mysql> select IFNULL(0,10);
-> 0
mysql> select IFNULL(1/0,10);
-> 10
mysql> select IFNULL(1/0,yes);
-> yes

IF(expr1,expr2,expr3)
假如expr1是TRUE(expr1<>0且expr1<>NULL卡塔尔国,那么IF(卡塔尔(英语:State of Qatar)再次回到expr2,不然它重返expr3。IF(卡塔尔(قطر‎重临叁个数字或字符串值,决意于它被应用的上下文。
mysql> select IF(1>2,2,3);
-> 3
mysql> select IF(1<2,yes,no);
-> yes
mysql> select IF(strcmp(test,test1),yes,no);
-> no

expr1作为整数值被总结,它代表假若你正在测验浮点或字符串值,你应当接受五个相比较操作来做。

mysql> select IF(0.1,1,0);
-> 0
mysql> select IF(0.1<>0,1,0);
-> 1

在上头的率先种景况中,IF(0.1卡塔尔国重回0,因为0.1被撤换来整数值, 以致测量试验IF(0卡塔尔(قطر‎。那恐怕不是您希望的。在第两种情状中,比较测量检验原本的浮点值看它是不是是非零,相比的结果被用作一个整数。

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
先是个版本再次回到result,此中value=compare-value。第3个版本中只要第四个规范化为真,重返result。若无相配的result值,那么结果在ELSE后的result被重返。若无ELSE部分,那么NULL被重临。
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
-> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
-> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL

下文对MYSQL IFNULL函数的施用实行了详细的叙说,供您参照他事他说加以调查学习,若是你在MYSQL IFNULL函数使用方面蒙受过形似的难点,无妨生龙活虎看。

MYSQL IFNULL(expr1,expr2)
假如expr1不是NULL,IFNULL(卡塔尔(英语:State of Qatar)再次回到expr1,不然它重临expr2。IFNULL(卡塔尔(英语:State of Qatar)重回一个数字或字符串值,决议于它被使用的上下文意况。
mysql> select IFNULL(1,0);
-> 1
mysql> select IFNULL(0,10);
-> 0
mysql> select IFNULL(1/0,10);
-> 10
mysql> select IFNULL(1/0,yes);
-> yes

IF(expr1,expr2,expr3)
要是expr1是TRUE(expr1<>0且expr1<>NULL卡塔尔(英语:State of Qatar),那么IF(卡塔尔重临expr2,不然它重返expr3。IF(卡塔尔国重回一个数字或字符串值,决意于它被利用的上下文。
mysql> select IF(1>2,2,3);
-> 3
mysql> select IF(1<2,yes,no);
-> yes
mysql> select IF(strcmp(test,test1),yes,no);
-> no

expr1作为整数值被总结,它代表假使您正在测量检验浮点或字符串值,你应当使用叁个相比较操作来做。

mysql> select IF(0.1,1,0);
-> 0
mysql> select IF(0.1<>0,1,0);
-> 1

在上头的率先种情形中,IF(0.1卡塔尔国重临0,因为0.1被转移到整数值, 招致测验IF(0卡塔尔国。那恐怕不是你希望的。在第两种情景中,比较测量检验原本的浮点值看它是还是不是是非零,相比较的结果被用作贰个整数。

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
 
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
首先个版本重临result,此中value=compare-value。第一个本子中风度翩翩旦第1个尺码为真,重回result。若无相配的result值,那么结果在ELSE后的result被重返。若无ELSE部分,那么NULL被重返。
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
-> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
-> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
-> NULL

下文对MYSQL IFNULL函数的运用实行了详细的叙说,供你仿照效法学习,假令你在MYSQL IFNULL函数使用方面遭逢过类的难题,不要紧...

本文由澳门新葡萄京娱乐网站发布于MySQL数据库,转载请注明出处:CASE的界别介绍_Mysql_脚本之家,MYSQLIFNULL函数的施

关键词: