国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

mysql刪除字段為空的數(shù)據(jù)詳解

2024-07-24 12:36:44
字體:
供稿:網(wǎng)友

在mysql中空與空值是兩碼事的,也就是大家說null或“”這種了,下面我總結(jié)了一些關(guān)于在mysql null與“”值的刪除與理解方法與大家分享.

空值與NULL的區(qū)別:我們先來理解mysql中空值與NULL的區(qū)別是什么吧,一些剛剛接觸MySQL的孩子,經(jīng)常會(huì)錯(cuò)誤的認(rèn)為NULL與空字符串’  ’是相同的,這看似是一件不重要的事情,但是在MySQL中,這兩者是完全不同的,NULL是指沒有值,而”則表示值是存在的,只不過是個(gè)空值.

這就相當(dāng)于廠子給職工分房子,一共只有一套,老張和老李都想要,可是經(jīng)理告訴老張,下次有您的房子,可是老李壓根就沒人搭理他,所以老張的房子是“空”的,因?yàn)檫@是空白支票,不過畢竟經(jīng)理張口了,而老李的房子就是NULL的,因?yàn)楦揪蜎]有人考慮過他.

一些根本不懂空值和NULL有什么區(qū)別,誤導(dǎo)初學(xué)者.

所謂的NULL就是什么都沒有,連都沒有,在字符串中是結(jié)束符,但是在物理內(nèi)存是占空間的,等于一個(gè)字節(jié),而NULL就是連這一個(gè)字節(jié)都沒有,在數(shù)據(jù)庫(kù)里是嚴(yán)格區(qū)分的,任何數(shù)跟NULL進(jìn)行運(yùn)算都是NULL,判斷值是否等于NULL,不能簡(jiǎn)單用=,而要用IS關(guān)鍵字,Mysql3.23.0或以后支持用 <=> 用來比較兩個(gè)NULL值是否相等,即 select * from table where id <=> NULL.

為什么會(huì)出現(xiàn)NULL?這是來源于數(shù)據(jù)庫(kù)的左右連接,不是憑空想出來的,比如:

  1. A(ID, Name), B(ID, Address) 
  2. 1, Name1 1, Shanghai 
  3. 2, Name2 3, Beijing 
  4.  
  5. 當(dāng)A左連接B則得到: 
  6. 1, Name1, Shanghai 
  7. 2, Name2, NULL 
  8.  //Vevb.com
  9. 當(dāng)A右連接B則得到: 
  10. 1, Name1, Shanghai 
  11. 3, NULL, Beijing 

數(shù)據(jù)庫(kù)的字段ID設(shè)為NOT NULL, 僅僅說明該字段不能為NULL,也就是說只有在:

INSERT INTO table(ID) VALUES(NULL);

這種情況下數(shù)據(jù)庫(kù)會(huì)報(bào)錯(cuò),而:

INSERT INTO table(ID) VALUES(‘ ‘);

這不能說明是NULL,數(shù)據(jù)庫(kù)系統(tǒng)會(huì)根據(jù)ID設(shè)的缺省值填充,或者如果是自增字段就自動(dòng)加一等缺省操作.

例,值為NULL:delete from 表名 where 字段名=NULL

值為""空值:delete from 表名 where 字段名='' 

總結(jié):判斷NULL用is null  或者 is not null,sql語(yǔ)句里可以用ifnull函數(shù)來處理,判斷空字符串‘’,要用 ='' 或者 <>'',sql語(yǔ)句里可以用if(col,col,0)處理,即,當(dāng)col為true時(shí)(非null,及非'')顯示,否則打印0.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 双鸭山市| 沂南县| 康平县| 奉化市| 松滋市| 利津县| 逊克县| 屯留县| 出国| 金塔县| 米易县| 阜南县| 阿瓦提县| 庆元县| 常山县| 孝昌县| 绥宁县| 剑阁县| 称多县| 南阳市| 永清县| 鹤山市| 松原市| 翁源县| 太保市| 滨州市| 车致| 东山县| 海丰县| 申扎县| 昌黎县| 彩票| 辽源市| 舞阳县| 阳信县| 江阴市| 仁寿县| 老河口市| 威信县| 山东| 桦川县|