判斷MySQL 返回的查詢結果為空:
創(chuàng)新互聯(lián)建站是一家專注于網站設計制作、成都網站制作與策劃設計,寬城網站建設哪家好?創(chuàng)新互聯(lián)建站做網站,專注于網站建設十多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:寬城等地區(qū)。寬城做網站價格咨詢:028-86922220
$link=mysql_connect(*********);
$sql="SELECT count FROM `test` WHERE value = 10000";
$result=mysql_query($sql,$link);
if($result){
echo "成功";
}else{
echo "失敗";
}
MySQL數(shù)據(jù)庫是一個基于結構化數(shù)據(jù)的開源數(shù)據(jù)庫 SQL語句是MySQL數(shù)據(jù)庫中核心語言 不過在MySQL數(shù)據(jù)庫中執(zhí)行SQL語句 需要小心兩個陷阱
陷阱一 空值不一定為空
空值是一個比較特殊的字段 在MySQL數(shù)據(jù)庫中 在不同的情形下 空值往往代表不同的含義 這是MySQL數(shù)據(jù)庫的一種特性 如在普通的字段中(字符型的數(shù)據(jù)) 空值就是表示空值 但是如果將一個空值的數(shù)據(jù)插入到TimesTamp類型的字段中 空值就不一定為空 此時為出現(xiàn)什么情況呢(如下圖)?
我先創(chuàng)建了一個表 在這個表中有兩個字段 User_id(其數(shù)據(jù)類型是int) Date(其數(shù)據(jù)類型是TimesTamp) 現(xiàn)在往這個表中插入一條記錄 其中往Date字段中插入的是一個NULL空值 可是當我們查詢時 其結果顯示的卻是插入記錄的當前時間 這是怎么一回事呢?其實這就是在MySQL數(shù)據(jù)庫中執(zhí)行SQL語句時經常會遇到的一個陷阱 空值不一定為空 在操作時 明明插入的是一個空值的數(shù)據(jù) 但是最后查詢得到的卻不是一個空值
在MySQL數(shù)據(jù)庫中 NULL對于一些特殊類型的列來說 其代表了一種特殊的含義 而不僅僅是一個空值 對于這些特殊類型的列 各位讀者主要是要記住兩個 一個就是筆者上面舉的TimesTamp數(shù)據(jù)類型 如果往這個數(shù)據(jù)類型的列中插入Null值 則其代表的就是系統(tǒng)的當前時間 另外一個是具有auto_increment屬性的列 如果往這屬性的列中插入Null值的話 則系統(tǒng)會插入一個正整數(shù)序列 而如果在其他數(shù)據(jù)類型中 如字符型數(shù)據(jù)的列中插入Null的數(shù)據(jù) 則其插入的就是一個空值
陷阱二 空值不一定等于空字符
在MySQL中 空值(Null)與空字符( )相同嗎?答案是否定的 請大家先來看下圖的演示
在同一個數(shù)據(jù)庫表中 同時插入一個Null值的數(shù)據(jù)和一個 空字符的數(shù)據(jù) 然后利用Select語句進行查詢 最后顯示的結果如上圖所示 顯然其顯示的結果是不相同的 從這個結果中就可以看出 空值不等于空字符 這就是在MySQL中執(zhí)行SQL語句遇到的第二個陷阱 在實際工作中 空值數(shù)據(jù)與空字符往往表示不同的含義 數(shù)據(jù)庫管理員可以根據(jù)實際的需要來進行選擇 如對于電話號碼等字段 可以默認設置為空值(表示根本不知道對方的電話號碼)或者設置為空字符(表示后來取消了這個號碼)等等 由于他們在數(shù)據(jù)庫中會有不同的表現(xiàn)形式 所以數(shù)據(jù)庫管理員需要區(qū)別對待 筆者更加喜歡使用空值 而不是空字符 這主要是因為針對空值這個數(shù)據(jù)類型有幾個比較特殊的運算字符 如果某個字段是空字符 數(shù)據(jù)庫中是利用字段名稱來代替 相反 如果插入的是空值 則直接顯示的是NULL 這跟其他數(shù)據(jù)庫的顯示方式也是不同的
一是IS NULL 和IS NOT NULL關鍵字 如果要判斷某個字段是否含用空值的數(shù)據(jù) 需要使用特殊的關鍵字 其中前者表示這個字段為空 后者表示這個字段為非空 在Select語句的查詢條件中這兩個關鍵字非常的有用 如需要查詢所有電話號碼為空的用戶(需要他們補充電話號碼信息) 就可以在查詢條件中加入is not null關鍵字
lishixinzhi/Article/program/MySQL/201311/29455
同意樓上的判斷,可能你的數(shù)據(jù) 的值就是 'null'
出現(xiàn)這種情況的可能是,數(shù)據(jù)是從哪兒導入的。畢竟沒有誰 這么無聊, 把'null' 寫入name列。
MySql中判斷null可以用 is null 和 =
1、is null :僅僅可以判斷null值,可讀性較高,建議使用。
select * from base_user where username is null
2、=? ? :既可以判斷null值,也可以判斷普通的數(shù)值,可讀性較低。
select * from base_user where?username?= null