程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql中IFNULL與IN操作

Mysql中IFNULL與IN操作

編輯:MySQL綜合教程

   Mysql IFNULL操作

  項目中用到的,當SQL查詢某個字段為空的時候,查詢結果中設置其值為默認值。最笨的方法當然是對查詢結果進行處理了,遍歷查詢結果,當為空的時候,設置其值:

 代碼如下  

$len=count($result);
for($i=0;$i<$len ;$i++){
    $var = $result[$i]['name'];
 if(!$var){
  $result[$i]['name']='default_name';
 }
}

  如上辦法,不僅費時,還??隆H绻?茉?ql語句中直接解決多好啊。

  SQL中有ISNULL方法,介紹如下:

  ISNULL

  使用指定的替換值替換 NULL。

  語法

  ISNULL ( check_expression , replacement_value )

  參數

  check_expression

  將被檢查是否為 NULL的表達式。check_expression 可以是任何類型的。

  replacement_value

  在 check_expression 為 NULL時將返回的表達式。replacement_value 必須與 check_expresssion 具有相同的類型。

  但在Mysql中,isnull只是用來判斷是否為空,不能實現替換功能,照上面寫的話,會直接報錯(Incorrect parameter count in the call to native function 'isnull' Errornumber:1582 )。

  那麼Mysql中如何實現SQL中的ISNULL方法呢?

  IFNULL( check_expression , replacement_value ),實現了SQL中的ISNULL方法。

  見下sql語句

 代碼如下  

mysql> SELECT IFNULL(1,0);
+-------------+
| IFNULL(1,0) |
+-------------+
|           1 |
+-------------+
1 row in set

  由於 expr1 是 1,不為 NULL,所以函數返回 1. 我們可以再試下,如果讓 expr1 為 NULL,是否能返回第二個參數呢? 不妨讓 expr1 = 1/0, 由於除數為0,結果就為 NULL 了。

 代碼如下  

mysql> SELECT IFNULL(1/0,'NowaMagic');
+-------------------------+
| IFNULL(1/0,'NowaMagic') |
+-------------------------+
| www.111cn.net               |
+-------------------------+
1 row in set

  前面的參數為 NULL,就返回第二個參數 www.111cn.net 了。

  這個函數不難理解,為什麼要介紹這個函數呢?這是為了後面講述 MySQL 下的高級黑客技術做的基礎知識准備,你可以先試著理解這麼一句 hack SQL

 代碼如下  

UPDATE table SET views = '1' WHERE id = -2441 OR (ORD(MID((SELECT IFNULL(CAST(FirstName AS CHAR),0x20) FROM nowamagic.`tb2` ORDER BY id LIMIT 1,1),2,1))>112)#

  Mysql的IN操作

  見如下SQL語句

 代碼如下  

select product
from ProductParameter
where val = 19116 OR val = 19127 OR val = 19128 OR val = 19119

  OR了很多是不是覺得很繁瑣呀?用IN就解決了:

 代碼如下  

select product
from ProductParameter
where val in (19116, 19127, 19128, 19119))

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved