null表示的含義是未知,即不知道有沒有。 和‘’空字符串不等,因為空字符串相當(dāng)于沒有值。 null代表的是不知道有沒有值。 所以在數(shù)據(jù)查詢中如果字段默認(rèn)值是null,想查詢出不等于某個條件的一定要加上——字段名 is null 或者字段名 is not null來...
嵊州網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)從2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運(yùn)維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。
同意樓上的判斷,可能你的數(shù)據(jù) 的值就是 'null'
出現(xiàn)這種情況的可能是,數(shù)據(jù)是從哪兒導(dǎo)入的。畢竟沒有誰 這么無聊, 把'null' 寫入name列。
1、首先需要創(chuàng)建數(shù)據(jù)庫表t_user_info,利用創(chuàng)建表SQL語句create table。
2、向數(shù)據(jù)庫表里插入數(shù)據(jù),按照插入SQL語句insert into 執(zhí)行。
3、插入完畢后,查詢數(shù)據(jù)庫表記錄select 字段 from table。
4、查詢數(shù)據(jù)庫表t_user_info用戶地址為空的記錄select * from table from 字段 is null。
5、查詢數(shù)據(jù)庫表t_user_info用戶電話不為空的記錄,select * from table where 字段 is not null。
6、查詢數(shù)據(jù)庫表t_user_info電話不為空且地址為空的記錄,select * from table where 字段 is not null and 字段 is null。
空值是一個比較特殊的字段。在MySQL數(shù)據(jù)庫中,在不同的情形下,空值往往代表不同的含義。這是MySQL數(shù)據(jù)庫的一種特性。如在普通的字段中(字符型的數(shù)據(jù)),空值就是表示空值。但是如果將一個空值的數(shù)據(jù)插入到TimesTamp類型的字段中,空值就不一定為空。此時為出現(xiàn)什么情況呢
我先創(chuàng)建了一個表。在這個表中有兩個字段:User_id(其數(shù)據(jù)類型是int)、Date(其數(shù)據(jù)類型是TimesTamp)?,F(xiàn)在往這個表中插入一條記錄,其中往Date字段中插入的是一個NULL空值??墒钱?dāng)我們查詢時,其結(jié)果顯示的卻是插入記錄的當(dāng)前時間。這是怎么一回事呢?其實這就是在MySQL數(shù)據(jù)庫中執(zhí)行SQL語句時經(jīng)常會遇到的一個陷阱:空值不一定為空。在操作時,明明插入的是一個空值的數(shù)據(jù),但是最后查詢得到的卻不是一個空值。
在MySQL數(shù)據(jù)庫中,NULL對于一些特殊類型的列來說,其代表了一種特殊的含義,而不僅僅是一個空值。對于這些特殊類型的列,各位讀者主要是要記住兩個。一個就是筆者上面舉的TimesTamp數(shù)據(jù)類型。如果往這個數(shù)據(jù)類型的列中插入Null值,則其代表的就是系統(tǒng)的當(dāng)前時間。另外一個是具有auto_increment屬性的列。如果往這屬性的列中插入Null值的話,則系統(tǒng)會插入一個正整數(shù)序列。而如果在其他數(shù)據(jù)類型中,如字符型數(shù)據(jù)的列中插入Null的數(shù)據(jù),則其插入的就是一個空值。