国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

MySQL查詢中的非空問題

數據庫 MySQL
在MySQL查詢過程中,難免會出現一些問題,而由于字段沒有設置NOT NULL而帶來的問題,尤其值得我們去注意。

MySQL查詢是我們經常會用到的操作,下面將為您分析MySQL查詢中的非空問題,希望對您學習MySQL查詢方面能夠有些許的幫助。

表的訂單狀態字段設計為varchar類型,有以下值:NULL,pending,pending refund,refund,cancel.我們知道查詢狀態為cancel的訂單,SQL語句可以這樣寫:

  1. 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,你不能使用算術比較 操作符例如=、<或!=。為了說明它,試試下列查詢:

  1. mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;  
  2. +----------+-----------+----------+----------+  
  3. 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |  
  4. +----------+-----------+----------+----------+  
  5. |     NULL |      NULL |     NULL |     NULL |  
  6. +----------+-----------+----------+----------+  

很 顯然你不能通過這些比較得到有意義的結果。相反使用IS NULL和IS NOT NULL操作符:

  1. mysql> SELECT 1 IS NULL, 1 IS NOT NULL;  
  2. +-----------+---------------+  
  3. | 1 IS NULL | 1 IS NOT NULL |  
  4. +-----------+---------------+  
  5. |         0 |             1 |  
  6. +-----------+---------------+  

請注意在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()返回一個數字或字符串值,取決于它被使 用的上下文環境。

  1. mysql> select IFNULL(1,0);  ->1  
  2. mysql> select IFNULL(0,10);  ->0  
  3. mysql> select IFNULL(1/0,10);  ->10.0000  
  4. mysql> select IFNULL(1/0,'yes');          
  5.  
  6. ->'yes'IF(expr1,expr2,expr3)  
  7.  

如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回 expr2,否則它返回expr3。IF()返回一個數字或字符串值,取決于它被使用的上下文。

  1. mysql> select IF(1>2,2,3);  -> 3  
  2. mysql> select IF(1<2,'yes','no'); -> 'yes'  
  3. mysql> select IF(strcmp('test','test1'),'yes','no'); -> 'no'  

expr1作為整數值被計算,它意味著如 果你正在測試浮點或字符串值,你應該使用一個比較操作來做。

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

在上面的第一種情況中,IF(0.1)返回0,因為0.1被變換 到整數值, 導致測試IF(0)。這可能不是你期望的。在第二種情況中,比較測試原來的浮點值看它是否是非零,比較的結果被用作一個整數。

  1. CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END   
  2.  
  3. CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END   
  4.  

第一個版本返回 result,其中value=compare-value。第二個版本中如果第一個條件為真,返回result。如果沒有匹配的result值,那么結 果在ELSE后的result被返回。如果沒有ELSE部分,那么NULL被返回。

  1. mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END; -> "one"  
  2. mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;  -> "true"  
  3. mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END; -> NULL   

 

 

 

【編輯推薦】

MySQL查詢超時問題的解決

MySQL無重復查詢的實現

詳解mysql命令行給列起假名

MySQL查詢優化器的工作原理

MySQL日期函數和時間函數

 

責任編輯:段燃 來源: 互聯網
相關推薦

2010-11-25 11:15:11

MySQL查詢超時

2010-01-04 13:44:41

SQL

2010-10-14 09:15:20

MySQL查詢

2010-11-25 15:57:49

mysql查詢語句

2009-10-14 13:43:12

綜合布線系統

2011-05-18 10:24:55

Oracle

2010-10-27 13:39:34

Oracle查詢

2010-11-25 16:09:58

mysql查詢大小寫

2022-07-08 17:13:32

MySQL數據死鎖

2011-07-25 09:03:30

WAMPMySQL空密碼

2010-09-02 14:59:23

非授權DHCP

2010-06-07 14:50:50

jsp MySQL

2021-10-20 20:27:55

MySQL死鎖并發

2010-09-24 15:46:23

SQL查詢

2018-12-14 15:35:20

MySQL索引數據庫

2010-07-02 13:26:56

SQL Server處

2011-04-01 14:14:42

SQL Server空值

2009-06-04 09:47:48

MySQL隱藏控件TMPDIR

2010-05-28 18:05:22

jsp MySQL

2010-11-26 11:08:20

MySQL字符串
點贊
收藏

51CTO技術棧公眾號

婷婷一区二区三区| 久久久国产成人精品| 欧美激情视频免费看| 在线综合亚洲| 国产精品老女人视频| 里番精品3d一二三区| www.日韩免费| 99久久久国产精品免费调教网站| 日韩免费观看高清完整版| 在线观看美女网站大全免费| 亚洲电影一区二区| 中文字幕第5页| 日本一区二区免费在线观看视频| 欧美中文字幕在线观看视频 | 亚洲成人aaa| 免费黄网在线观看| 欧美日韩在线播放一区| yiren22综合网成人| 欧美日韩午夜精品| 免费大片黄在线观看视频网站| 色狠狠色噜噜噜综合网| 国产对白叫床清晰在线播放| 亚洲妇女屁股眼交7| 欧美成人免费| 欧美日韩视频在线观看一区二区三区| 你懂的在线观看视频网站| 欧美日韩国产影院| 巨骚激情综合| 欧美va亚洲va在线观看蝴蝶网| 肉肉视频在线观看| 亚洲黄色www网站| av剧情在线观看| 亚洲精品在线观看www| 精品123区| 91精品国产网站| 亚洲精品一区二区在线看| 亚洲自拍中文字幕| 日本午夜一区二区| 成人免费观看视频在线观看| 国产精品久久久久久福利一牛影视| 波多野结衣中文字幕在线| 日本久久一区二区三区| 123区在线| 久久久久久999| 99国产**精品****| 人禽交欧美网站免费| 国产成人在线观看免费网站| 免费观看成人网| 午夜成人免费视频| 欧美hdxxxx| 欧美裸身视频免费观看| 成人网18免费网站| 日本一区二区在线| 99久久99久久精品免费看蜜桃| 大陆一级毛片| 日韩欧美一卡二卡| 中文字幕一区二区三区四区久久| 成人乱色短篇合集| 精品一区二区在线观看| 亚洲欧美国产中文| 欧美日韩久久一区| 亚洲伊人精品酒店| yellow视频在线观看一区二区| 国产一区久久久| 美日韩黄色片| 亚洲精品国产精品国产自| 精品自拍偷拍| 欧美中文娱乐网| 亚洲欧美在线视频观看| 黄色精品在线观看| 国内伊人久久久久久网站视频| 伊人久久成人| 欧洲熟妇精品视频| 5858s免费视频成人| 国产精品久久久久av蜜臀| 精品在线不卡| 中文字幕在线不卡| 91av久久| 成人av色在线观看| av在线免费不卡| 国产黄色片在线观看| 欧美激情视频在线观看| 日韩激情在线观看| 青青在线视频一区二区三区| 久久婷婷国产综合精品青草| 日韩av资源| 亚洲人午夜色婷婷| 国产福利91精品| 国产日产精品久久久久久婷婷| 91国产福利在线| 黄色在线视频网站| 久久综合免费视频| 日韩理论电影中文字幕| 免费91在线视频| 456成人影院在线观看| 精品国产一区二区三区久久久久久| 国产主播一区二区三区| 中文字幕av不卡在线| 欧美日韩视频第一区| 国产精品婷婷| 免费观看性欧美大片无片| 国产最新免费视频| 欧美专区中文字幕| 国产精品啊啊啊| 99视频在线免费播放| 日韩欧美999| 日韩三级精品| 亚洲精品一区二| 欧美日韩亚洲一区二| 国产欧美88| 美女黄色片网站| 欧美日韩国产高清一区二区三区| 日韩大尺度在线观看| www.欧美黄色| 日韩精品专区在线影院重磅| 亚洲一区欧美| 曰韩少妇与小伙激情| 欧美国产视频一区二区| 久久99热这里只有精品| 日本中文字幕在线2020| 川上优av一区二区线观看| 中文字幕在线观看不卡视频| 麻豆久久久久| 精品视频在线观看一区二区| 欧美一区二区视频在线观看2022| 欧美三级午夜理伦三级中文幕| av福利导福航大全在线播放| 国产成人av在线| 亚洲欧美自拍偷拍| 欧美日韩一本| 2025韩国理伦片在线观看| 久久亚洲精品网站| 91首页免费视频| 激情欧美一区二区三区黑长吊| 国产精品久久久久久久乖乖| 亚洲人午夜精品| 国产精品一区二区三区乱码| 中文字幕人成乱码在线观看 | 日本欧美久久久久免费播放网| 深夜福利视频在线免费观看| 国产欧美最新羞羞视频在线观看| 亚洲精品国产无天堂网2021| 亚洲欧美校园春色| 国产va在线| 国产欧美欧洲在线观看| 亚洲国产精品一区二区久久| 成人aaaa| 国产在线视频网| 久久久久久九九| 欧美一区二区三区爱爱| 免费观看在线色综合| 欧洲一区精品| www.浪潮av.com| 久久久免费高清电视剧观看| 亚洲欧美日韩国产手机在线| 日韩1区2区| av在线免费观看网| 亚州欧美一区三区三区在线| 亚洲性线免费观看视频成熟| 久久久久国产精品人| 亚洲精品乱码久久久久久蜜桃91| 97视频精品| 三上悠亚一区| 色姑娘综合网| 久热精品视频在线| 午夜精品福利视频| 色综合久久久久网| 日韩精品极品在线观看| 久久精品国产99久久6| 亚洲精品国产成人久久av盗摄| 日韩在线一区二区| 久久久久久免费视频| 国产一区二区三区国产精品| 91在线看片| 色综合视频二区偷拍在线| 国产精品欧美一区喷水| 成人激情小说网站| 国产欧美一区二区在线| 亚洲图片欧美激情| 亚洲精品成a人| 精品久久人人做人人爰| 欧美性做爰毛片| 亚洲аv电影天堂网| 97久久夜色精品国产九色| 欧美精品福利在线| 国产精品久久久久久久午夜 | 99riav久久精品riav| 国产精品黄色在线观看| 国产精品综合一区二区三区| 红桃视频国产精品| 色综合天天综合网天天看片| 欧美天堂在线观看| 欧美三级韩国三级日本三斤| 欧美不卡视频一区| 久久久国产精品免费| 日韩免费在线播放| 欧美激情在线狂野欧美精品| 欧美a在线视频| 成年人在线看| 国产精品免费精品自在线观看|