精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL數(shù)據(jù)庫(kù)NULL值的處理

數(shù)據(jù)庫(kù) MySQL
以下的文章主要介紹的是MySQL數(shù)據(jù)庫(kù)NULL的實(shí)際用法以及其實(shí)際應(yīng)用代碼的描述,以下就是文章的詳細(xì)內(nèi)容描述,望你會(huì)有所收獲。

我們大家都知道MySQL數(shù)據(jù)庫(kù)NULL其有非常獨(dú)特的邏輯意義,對(duì)于NULL值的處理問(wèn)題可以說(shuō)是令人一大頭疼的事情,所以今天我特意整理了一些比較實(shí)用的TIPS,希望會(huì)給你帶來(lái)一些幫助在此方面,疏漏之處敬請(qǐng)批評(píng) 。

1. 對(duì)含空值列進(jìn)行排序

建表:

  1. mysql> create table t1(col1 int primary key, col2 varchar(2),col3 int);   
  2. Query OK, 0 rows affected (0.24 sec)  

加入數(shù)據(jù):

 

  1. mysql> insert into t1 values (1,'A',10),(2,'B',NULL),(3,'C',NULL),(4,'D',50),(5,'E',30),(6,'F',NULL),(7,'G',20),(8,'H',90),(9,'I',NULL),(10,'J',60);   
  2. Query OK, 10 rows affected (0.08 sec)   
  3. Records: 10 Duplicates: 0 Warnings: 0  

我們知道MySQL在排序過(guò)程中總是將NULL當(dāng)作“最小值”處理。例如:

 

  1. mysql> select * FROM t1 order by 3;   
  2. +------+------+------+   
  3. | col1 | col2 | col3 |   
  4. +------+------+------+   
  5. | 6 | F | NULL |   
  6. | 2 | B | NULL |   
  7. | 3 | C | NULL |   
  8. | 9 | I | NULL |   
  9. | 1 | A | 10 |   
  10. | 7 | G | 20 |   
  11. | 5 | E | 30 |   
  12. | 4 | D | 50 |   
  13. | 10 | J | 60 |   
  14. | 8 | H | 90 |   
  15. +------+------+------+   
  16. 10 rows in set (0.00 sec)   

但是,怎樣實(shí)現(xiàn)如下效果呢:

  1. +------+------+------+   
  2. | col1 | col2 | col3 |   
  3. +------+------+------+   
  4. | 1 | A | 10 |   
  5. | 7 | G | 20 |   
  6. | 5 | E | 30 |   
  7. | 4 | D | 50 |   
  8. | 10 | J | 60 |   
  9. | 8 | H | 90 |   
  10. | 2 | B | NULL |   
  11. | 3 | C | NULL |   
  12. | 6 | F | NULL |   
  13. | 9 | I | NULL |   
  14. +------+------+------+  
  15. 10 rows in set (0.00 sec)   
  16. SOLUTION:   
  17. mysql> SELECT col1, col2, col3 FROM (   
  18. -> SELECT col1, col2, col3,CASE WHEN col3 IS NULL THEN 0 ELSE 1 END AS IS_NULL FROM t1) as n   
  19. -> ORDER BY n.IS_NULL DESC, col3;  

 

運(yùn)用 'CASE'表達(dá)式構(gòu)造一個(gè)附加列,并為空值和非空值分別賦值,然后以該附加列作為排序條件。

 

  1. mysql> select col1, col2, col3,CASE WHEN col3 IS NULL THEN 0 ELSE 1 END AS IS_NULL FROM t1;   
  2. +------+------+------+---------+ |  
  3. | col1 | col2 | col3 | IS_NULL |   
  4. +------+------+------+---------+   
  5. | 1 | A | 10 | 1 |   
  6. | 2 | B | NULL | 0 |   
  7. | 3 | C | NULL | 0 |   
  8. | 4 | D | 50 | 1 |   
  9. | 5 | E | 30 | 1 |   
  10. | 6 | F | NULL | 0 |  
  11. | 7 | G | 20 | 1 |   
  12. | 8 | H | 90 | 1 |   
  13. | 9 | I | NULL | 0 |   
  14. | 10 | J | 60 | 1 |   
  15. +------+------+------+---------+   
  16. 10 rows in set (0.00 sec)   

 

通過(guò)構(gòu)造附加列對(duì)含MySQL數(shù)據(jù)庫(kù)NULL列排序,可以輕松決定含空值的記錄在結(jié)果集中的位置。

2. 運(yùn)用 ORDER BY NULL 禁止排序

若查詢中包含 GROUP BY 但我們希望避免對(duì)結(jié)果集排序從而減少消耗,可以運(yùn)用 ORDER BY NULL 禁止排序。

  1. R,'` A.Kk   
  2. mysql> EXPLAIN SELECT SUM(col3),CASE WHEN col3 IS NULL THEN 0 ELSE 1 END AS IS_NULL FROM t1 GROUP BY IS_NULL\G;  

1. row

  1. id: 1   
  2. select_type: SIMPLE   
  3. table: t1   
  4. type: ALL    
  5. possible_keys: NULL   
  6. key: NULL   
  7. key_len: NULL   
  8. ref: NULL   
  9. rows: 10   
  10. Extra: Using temporary; Using filesort   
  11. 1 row in set (0.00 sec)   
  12. mysql> EXPLAIN SELECT SUM(col3),CASE WHEN col3 IS NULL THEN 0 ELSE 1 END AS IS_NULL FROM t1 GROUP BY IS_NULL m)ORDER BY NULL\G;   

1. row

  1. id: 1   
  2. select_type: SIMPLE   
  3. table: t1   
  4. type: ALL   
  5. possible_keys: NULL   
  6. key: NULL   
  7. key_len: NULL ts   
  8. ref: NULL   
  9. rows: 10   
  10. Extra: Using temporary   
  11. 1 row in set (0.00 sec)  

可見(jiàn)運(yùn)用了ORDER BY NULL后查詢便沒(méi)有進(jìn)行filesort,在較大結(jié)果集中filesort操作往往相當(dāng)耗時(shí)。

3. 子查詢 NOT IN 與 NOT EXISTS 中的NULL 

有些情況下 NOT IN 形式的子查詢返回空結(jié)果集,但是將其改寫(xiě)為 NOT EXISTS 形式后則恢復(fù)正常,如下所示:
建表:

  1. mysql> CREATE TABLE t2 (col1 int default NULL, col2 int default NULL);   
  2. Query OK, 0 rows affected (0.01 sec)   
  3. mysql> CREATE TABLE t3 (col1 int default NULL, col2 int default NULL);   
  4. Query OK, 0 rows affected (0.01 sec)  

加入數(shù)據(jù):

  1. mysql> INSERT INTO t2 VALUES (1,2),(1,3);   
  2. Query OK, 2 rows affected (0.00 sec)   
  3. Records: 2 Duplicates: 0 Warnings: 0   
  4. mysql> INSERT INTO t3 VALUES (1,2),(1,NULL);   
  5. Query OK, 2 rows affected (0.00 sec)   
  6. Records: 2 Duplicates: 0 Warnings: 0  

執(zhí)行如下查詢:

  1. mysql> SELECT * FROM t2 WHERE col2 NOT IN (SELECT col2 FROM t3);   
  2. Empty set (0.00 sec)   
  3. mysql> SELECT * FROM t2 WHERE NOT EXISTS (SELECT 1 FROM t3 WHERE t3.col2 = t2.col2);   
  4. +------+------+   
  5. | col1 | col2 |   
  6. +------+------+   
  7. | 1 | 3 |   
  8. +------+------+   
  9. 1 row in set (0.00 sec)  

為什么會(huì)這樣呢?這要從MySQL數(shù)據(jù)庫(kù)NULL的特殊性說(shuō)起:

在MySQL中有三種狀態(tài):True、False、Unknown,任何NULL的比較操作都是Unknown狀態(tài),如下所示:

  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. +----------+-----------+----------+----------+   
  7. 1 row in set (0.00 sec)  

而且所有的查詢條件(ON, WHERE, HAVING)都是將Unknown狀態(tài)當(dāng)做False處理。

所以***條查詢的查詢田間等同于:col2 NOT IN (2, NULL) => col2 <> 2 AND col2 <> NULL => true AND Unknow => Unknow => False
查詢條件永為False,故該查詢沒(méi)有返回結(jié)果。

而 NOT EXISTS 是循環(huán)執(zhí)行的

他首先執(zhí)行 SELECT 1 FROM t3 WHERE t3.col2 = 2

返回了結(jié)果,經(jīng) NOT EXISTS 操作后查詢條件為 False,故不做任何輸出,

接下來(lái)執(zhí)行 SELECT 1 FROM t3 WHERE t3.col2 = 3

無(wú)返回結(jié)果。經(jīng) NOT EXISTS 操作后查詢條件為 True,于是輸出本次查詢結(jié)果。

所以,如果當(dāng)一個(gè) NOT IN 子查詢沒(méi)有返回結(jié)果的時(shí)候,應(yīng)該特別注意內(nèi)層查詢的結(jié)果集是否包含空值,若包含的話,應(yīng)嘗試將查詢改寫(xiě)為 NOT EXISTS 形式。

這種做法在有些情況下還可導(dǎo)致性能的提升。以上的相關(guān)內(nèi)容就是對(duì)MySQL數(shù)據(jù)庫(kù)NULL 的介紹,望你能有所收獲。

 

【編輯推薦】

  1. MySQL mysqldump命令的正確應(yīng)用
  2. 使用MySQL 數(shù)據(jù)庫(kù)出現(xiàn)的困難解決
  3. jsp MySQL 中的中文問(wèn)題的產(chǎn)生與解決
  4. MySQL命令導(dǎo)數(shù)據(jù)的實(shí)際操作與代碼
  5. 用c語(yǔ)言正確讀取MySQL數(shù)據(jù)庫(kù)實(shí)戰(zhàn)演示
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2011-04-07 15:47:28

MySQL數(shù)據(jù)庫(kù)

2021-01-26 13:40:44

mysql數(shù)據(jù)庫(kù)

2017-10-23 16:06:41

數(shù)據(jù)庫(kù)MySQL復(fù)制中斷

2011-07-11 14:36:10

BinlogMysql

2011-07-12 16:41:14

mysql處理異常

2011-05-26 14:43:49

ORACLE數(shù)據(jù)庫(kù)異常處理

2011-08-05 14:02:17

MySQL數(shù)據(jù)庫(kù)異常處理

2010-06-04 14:59:06

MySQL數(shù)據(jù)庫(kù)

2010-05-05 14:13:52

Oracle數(shù)據(jù)

2011-03-08 08:49:55

MySQL優(yōu)化單機(jī)

2011-05-13 09:42:21

2011-02-22 14:26:04

ProFTPD

2011-02-22 14:26:04

ProFTPD

2023-10-26 14:30:05

MySQLInnoDB

2024-09-12 08:45:23

2009-05-08 09:56:37

MaxDBMySQL數(shù)據(jù)庫(kù)管理

2011-03-09 08:53:02

MySQL優(yōu)化集群

2022-08-16 14:40:09

SQL數(shù)據(jù)庫(kù)內(nèi)存結(jié)構(gòu)

2017-09-26 13:35:40

Mysql數(shù)據(jù)庫(kù)設(shè)計(jì)樹(shù)狀數(shù)據(jù)

2025-01-20 07:10:00

LambdaJavanull
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

亚洲欧美视频在线观看视频| 巨茎人妖videos另类| 美国三级日本三级久久99| 51精品秘密在线观看| 亚洲永久激情精品| 国产三级精品在线观看| 午夜国产精品视频| 精品国产1区二区| www.国产区| 蜜桃视频在线观看www社区| 激情都市一区二区| 久久久免费观看视频| 一区二区三区少妇| 国内自拍亚洲| 一区二区三区中文字幕| 精品网站在线看| 中文字幕人妻精品一区| 中文字幕一区二区三区欧美日韩| 精品国产伦理网| 久久精品.com| 黄色网址在线免费播放| av一区二区三区| 国产精品免费视频xxxx| 久久一区二区三| 欧美日韩国产在线观看网站 | 亚洲欧洲一区二区在线观看| 精品毛片在线观看| 国产日韩1区| www.色综合| 国产ts丝袜人妖系列视频| 国产精品麻豆成人av电影艾秋| 亚洲国产精品久久久久婷婷884| 青娱乐国产91| www.av导航| 久久久国产亚洲精品| 久久国产精品首页| 97伦伦午夜电影理伦片| 亚洲一区二区三区日本久久九| 欧美日韩精品在线播放| 中文字幕一区二区三区最新 | 午夜av区久久| 宅男一区二区三区| 免费成人av电影| 福利一区福利二区| 国产日韩在线精品av| 午夜精品久久久久久久久久久久久蜜桃 | 亚洲av无码乱码国产精品| 蜜臀久久99精品久久久久宅男| 91成人国产在线观看| 九九热视频在线免费观看| 国产欧美一区| 亚洲欧美国产va在线影院| 色悠悠在线视频| 国产成人久久精品一区二区三区| 色婷婷亚洲一区二区三区| 搞av.com| a级片免费在线观看| 亚洲男同性恋视频| 一区二区不卡在线视频 午夜欧美不卡'| 黄色三级网站在线观看| 国产精品1区2区| 91精品国产自产在线| 性色av一区二区三区四区| 久久精品国产清高在天天线| 69久久夜色精品国产7777| 国产精品9191| 亚洲精一区二区三区| 欧美激情a在线| 亚洲av无码一区二区三区在线| 一本色道久久综合亚洲精品酒店| 亚洲高清久久久久久| 中文字幕99页| xxxx日韩| 日韩成人xxxx| 国产色视频一区二区三区qq号| 欧美一性一交| 亚洲国产成人精品一区二区| 50一60岁老妇女毛片| 超碰精品在线| 日韩久久精品电影| 欧美熟妇一区二区| 成人av二区| 日韩在线欧美在线国产在线| 中国毛片直接看| 欧美日韩亚洲在线观看| 国产午夜精品视频免费不卡69堂| 中文字幕人妻一区二区三区在线视频| 精品国产乱码久久久久久蜜坠欲下 | 91视频观看视频| 欧美日韩一区二区三区在线观看免| 日韩国产福利| 国产精品久久久久9999吃药| 日本丰满少妇黄大片在线观看| 污污视频在线看| 亚洲va欧美va天堂v国产综合| 成年人网站免费视频| 毛片在线网址| 欧美性xxxx极品hd满灌| 久久综合伊人77777麻豆最新章节| 巨大黑人极品videos精品| 91精品久久久久久久99蜜桃| 亚洲国产精品狼友在线观看| 精品在线91| 色吧影院999| 久久久久久久久久久久国产| 老司机精品福利视频| 国产精品爽黄69天堂a| 精品人妻午夜一区二区三区四区| caoporm超碰国产精品| 欧美激情www| 成年人视频在线观看免费| 亚洲自拍与偷拍| 成人毛片一区二区| 日本欧美韩国| 日韩免费一区二区三区在线播放| 国产chinese中国hdxxxx| 欧美激情在线免费| 欧美成人手机在线| 黄色片免费观看视频| 精品在线观看免费| 久久国产一区二区| 高h视频在线观看| 色综合天天综合网天天看片| 久久精品亚洲天堂| 久久不见久久见免费视频7| 精品国产网站地址| 天码人妻一区二区三区在线看| 国产一区二区伦理片| 你懂的视频在线一区二区| √新版天堂资源在线资源| 一区二区三区高清不卡| 九九热免费精品视频| 粉嫩的18在线观看极品精品| 日韩中文字幕在线精品| 中文字幕激情小说| 成人激情av网| 亚洲av综合色区| 99久久er| 日韩精品极品视频免费观看| 亚洲国产美女视频| 久久99国产精品麻豆| 欧美精品亚洲| 久操免费在线| 欧美日韩精品一区二区| 日本激情小视频| 国产伦理一区| 极品日韩久久| 超碰在线网站| 欧美大片在线观看一区二区| 国产精品99久久久久久成人| 日本不卡在线视频| 欧美一区少妇| 爱看av在线| 精品少妇一区二区三区在线播放 | 国产精品30p| 国产成人在线免费观看| 正在播放亚洲| 四虎精品永久免费| 色婷婷成人综合| 伊人免费在线观看| 国产欧美日韩视频一区二区| 最近免费中文字幕中文高清百度| 日本成人a网站| 午夜精品一区二区三区视频免费看 | 99国产精品私拍| 精品国产aⅴ麻豆| 国产污视频在线播放| 亚洲第一天堂av| 亚洲视频免费播放| 不卡av电影在线播放| 国产欧美日韩网站| 欧美三级午夜理伦三级小说| 欧美在线视频免费| 久久电影中文字幕| 91福利区一区二区三区| 蜜桃久久精品成人无码av| 久久一区激情| 亚洲精品高清视频| 国产成人免费视频网站视频社区| 久久影视电视剧免费网站清宫辞电视| 国产熟女一区二区三区五月婷| 亚洲人成网站色在线观看| 黄页网站在线看| 亚洲精品97| 国产精品日韩一区二区免费视频| sm捆绑调教国产免费网站在线观看| 亚洲成人久久久久| 香蕉影院在线观看| 国产精品私房写真福利视频| 欧美性受xxxx黒人xyx性爽| 欧美日韩国产成人精品| 国产一级特黄a大片99| 在线天堂资源| 中文字幕视频在线免费欧美日韩综合在线看 | 国产欧美亚洲精品a| 国产日韩精品一区二区| 在线观看wwwxxxx| 日韩成人久久久| 中文字幕在线看人| 中文字幕亚洲成人| 中文字幕第3页| 麻豆久久一区二区| 日韩a级黄色片| 精品国产一区二区三区| 亚洲a区在线视频| 女厕盗摄一区二区三区| 中文国产成人精品久久一| 国产黄色小视频在线观看| 黄色一区二区在线观看| 日韩在线不卡av| 不卡一区二区在线| 色诱视频在线观看| 欧美人成在线| 日韩在线三区| 99精品在免费线中文字幕网站一区 | 亚洲综合在线中文字幕| 极品av在线| 久久久999精品视频| 天堂资源中文在线| 欧美夫妻性生活| 中文字幕一区二区人妻视频| 一区二区三区精品| 日本免费网站视频| 99re视频精品| 亚洲免费av一区| 国产精品普通话对白| 亚洲一区美女| 综合伊思人在钱三区| 666精品在线| yw.尤物在线精品视频| 91国在线精品国内播放 | 国语一区二区三区| 成人伊人精品色xxxx视频| 欧美gay视频| 久久久久日韩精品久久久男男 | 中文字幕亚洲一区在线观看 | 久久久久久激情| 国产精品免费观看视频| 日韩人妻无码一区二区三区| 丁香婷婷综合色啪| 欧美成人手机在线视频| 日本午夜一本久久久综合| 1024av视频| 99热这里只有成人精品国产| 中国老女人av| 99精品综合| 亚洲一区二区三区精品在线观看| 尤物tv在线精品| 国产成人精品免费视频大全最热| 国产精品av一区二区三区| 欧美激情一区二区三区高清视频| 黄色网在线免费看| 日韩在线视频线视频免费网站| 邻居大乳一区二区三区| 亚洲精品久久视频| 黄色片一区二区| 亚洲第一国产精品| 性猛交富婆╳xxx乱大交天津 | 国产美女无遮挡永久免费| 欧美午夜精品一区二区蜜桃| 天堂网免费视频| 日韩欧美成人精品| 亚洲综合久久网| 高跟丝袜欧美一区| 国产一级特黄视频| 亚洲一区二区三区四区的| 国产乡下妇女做爰视频| 亚洲成人福利片| 天天操天天干视频| 欧美日韩中文字幕在线视频| 五月天婷婷导航| 欧美在线短视频| 中文字幕欧美色图| 欧美一级一级性生活免费录像| 国产999久久久| 精品美女在线观看| 国产精品乱码一区二区| 欧美日产国产精品| 国产福利资源在线| 日韩免费看网站| 天天干天天操av| 亚洲欧美日韩视频一区| jizz视频在线观看| 久久精品视频播放| 污污的网站在线免费观看| 久久久久久com| 中文字幕在线视频网站| 国产精品成人一区二区| 国产精品视频一区视频二区 | 国模私拍一区二区三区| 性欧美xxx69hd高清| 国产精品第10页| 高清在线一区二区| 国产日韩欧美精品| 国产探花在线精品| 亚洲小说欧美另类激情| 一区二区毛片| 亚洲精品www.| 国产伦精品一区二区三区免费| 妖精视频一区二区| 国产欧美日韩激情| 极品盗摄国产盗摄合集| 欧美性生交xxxxxdddd| 国产永久免费视频| 日韩欧美国产一区在线观看| 人成在线免费视频| 国产午夜精品视频| www.综合网.com| 国产精品久久久久久久av电影| 欧洲大片精品免费永久看nba| 久久久神马电影| 一区二区三区四区日韩| 青青在线视频观看| 激情五月播播久久久精品| 日韩av无码一区二区三区不卡 | 成av人片在线观看www| 欧美壮男野外gaytube| 白嫩亚洲一区二区三区| 久久综合久久综合这里只有精品| 91精品蜜臀一区二区三区在线| 黄色成人在线免费观看| 日韩不卡在线观看日韩不卡视频| 中文字幕乱码在线人视频| 国产欧美一区视频| 丰满少妇乱子伦精品看片| 欧美一二三区在线| a黄色在线观看| 欧美黑人极品猛少妇色xxxxx| av在线日韩| 精品国产乱码一区二区三区四区 | 亚洲国产日韩欧美在线动漫| 欧美丰满一区二区免费视频| 亚洲综合精品视频| 亚洲欧美国产高清va在线播| 国产美女高潮在线观看| 国产美女在线精品免费观看| 一区二区三区四区在线观看国产日韩| 亚洲免费999| 国产精品女主播在线观看| 国产一区免费看| 亚洲视频axxx| 国模一区二区| 色综合久久av| 日本aⅴ免费视频一区二区三区| 国产小视频自拍| 在线中文字幕一区| 岛国在线大片| 国产精品欧美激情在线播放| 日韩.com| 亚洲精品20p| 亚洲乱码中文字幕| www.日韩高清| 97精品视频在线观看| 狼人天天伊人久久| 成人在线观看黄| 中文无字幕一区二区三区 | 日韩情涩欧美日韩视频| 人交獸av完整版在线观看| 国产精品久久亚洲| 亚洲永久网站| 亚洲色图 激情小说| 欧美另类高清zo欧美| 在线观看三级视频| 精品国产免费一区二区三区 | 欧美日韩和欧美的一区二区| 麻豆91在线| www日韩av| 国产精品久久久亚洲一区| 免费看黄色三级| 91精品国产手机| av丝袜在线| 色综合久久88色综合天天提莫| 狠狠色狠狠色综合| 日本熟妇毛耸耸xxxxxx| 国产丝袜高跟一区| 久久爱.com| 国产黄色片免费在线观看| www国产亚洲精品久久麻豆| 中文在线最新版天堂| 欧美日韩国产成人高清视频| 在线日韩一区| 日韩高清在线一区二区| 午夜欧美2019年伦理| av在线首页| 国产精品一区二区三区免费| 日韩成人伦理电影在线观看| 久久久久久久久久久久国产| 亚洲欧美一区二区三区情侣bbw | 日韩国产在线一区| 国产剧情av麻豆香蕉精品| 国产九色在线播放九色| 日韩视频免费在线| 日韩超碰人人爽人人做人人添| 57pao国产成永久免费视频| 舔着乳尖日韩一区| 黄视频网站在线看| 欧美精品一区二区三区四区五区 | 欧美精品日韩一本| 在线不卡日本v二区707| 五月婷婷一区|