null表示的含義是未知,即不知道有沒有。 和‘’空字符串不等,因?yàn)榭兆址喈?dāng)于沒有值。 null代表的是不知道有沒有值。 所以在數(shù)據(jù)查詢中如果字段默認(rèn)值是null,想查詢出不等于某個(gè)條件的一定要加上——字段名 is null 或者字段名 is not null來...
成都創(chuàng)新互聯(lián)公司專注于郾城企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站制作。郾城網(wǎng)站建設(shè)公司,為郾城等地區(qū)提供建站服務(wù)。全流程按需求定制制作,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
如:select a.*,b.* from a left join b on a.code = b.code
若a 表中code 有為null的記錄,b 表中也有code為null 的記錄時(shí)
查詢結(jié)果不會(huì)去空,b表中code為null的記錄也不會(huì)被查出
如:select a.*,b.* from a left join b on a.code = b.code
若a 表中code 有為null的記錄,b 表中也有code為null 的記錄時(shí)
查詢結(jié)果會(huì)去除 a表中code為null的記錄以及b表中code為null的記錄
修改mysql配置文件my.cnf:
在[mysqld]中添加
重啟mysql服務(wù),用空密碼直接登錄,查詢用戶表,有結(jié)果則按如下步驟修改,結(jié)果為空直接最后的解決辦法
修改對(duì)應(yīng)用戶的密碼
取消或注釋掉my.cnf配置文件添加的選項(xiàng) skip-grant-tables ,重啟mysql服務(wù),搞定收工。
編輯my.cnf配置文件,添加或修改下面兩項(xiàng)(我這沒有sql_mode項(xiàng)):
插入root用戶數(shù)據(jù)
再次查詢mysql.user表,會(huì)報(bào)錯(cuò)
需要修復(fù)mysql.user表
修改root用戶的權(quán)限:
查詢字段為空的數(shù)據(jù)。如下三條語句查詢的結(jié)果各不相同。
select count(0) from tps_uw_detail where trim(coreContNo)=''; ###1736
select count(0) from? tps_uw_detail where coreContNo is null; ###735
select count(0) from? tps_uw_detail where (coreContNo is null or trim(coreContNo)='');##2471
='';就是存的空字符串;is null 就是默認(rèn)的。
由于是后來新加的字段,默認(rèn)為null,所以歷史數(shù)據(jù)都為null。表中加上這個(gè)字段后,再落庫的數(shù)據(jù)就是空字符串了。
根據(jù)自己的需求選用腳本,第三個(gè)是適合我的。
分兩種情況
第一種是當(dāng)你的值為null的時(shí):select * from tablename where 列名 is null
第二種情況值為空字符串時(shí):select * from tablename where 列名=''