Mysql学习笔记(三)运算符和控制流函数
生活随笔
收集整理的這篇文章主要介紹了
Mysql学习笔记(三)运算符和控制流函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:Mysql學習筆記(三)運算符和控制流函數
本章學習內容:
1.操作符
2.控制流程函數
?
操作符:
i.圓括號。。
簡單的介紹一下圓括號,圓括號的使用的目的是規定計算表達式的順序。。。這個想必大家都熟悉例如? mysql>select 1+(2*3) mysql>select (1+2)*3
ii.比較運算符。
比較運算符就比較多了,并且也很常用..比如
?
=等于:mysql> SELECT 1 = 0;-> 0 mysql> SELECT '0' = 0;-> 1<> , !=不等于:mysql> SELECT '.01' <> '0.01';-> 1mysql> SELECT .01 <> '0.01';-> 0 <=小于或等于:mysql> SELECT 0.1 <= 2;-> 1<小于:mysql> SELECT 2 < 2;-> 0>=大于或等于:mysql> SELECT 2 >= 2;-> 1>大于:mysql> SELECT 2 > 2;-> 0<=>NULL 值安全等于:mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;-> 1 1 0IS NULL IS NOT NULL測試一個值是或不是 NULL:mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;-> 0 0 1mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;-> 1 1 0expr BETWEEN min AND max如果 expr 大于或等于 min ,并且 expr 小于或等于 max,BETWEEN 返回 1,否則返回 0。它等價于表達式 (min <= expr AND expr <= max) ,只要所有的參數均是相同的類型。 否則類型會依照上面的規則發生轉換,但是應用于所有三個參數。注意,在 MySQL 4.0.5 之前,參數被轉換到 expr 的類型。 mysql> SELECT 1 BETWEEN 2 AND 3;-> 0 mysql> SELECT 'b' BETWEEN 'a' AND 'c';-> 1expr IN (value,...)如果 expr 是 IN 列表中的作一值,它將返回 1,否則返回 0。如果所有的值均是常數,那么所有的值被依照 expr 的類型進行計算和排序。然后以一個二進制搜索方式完成項目的搜索。這就意味著,如果 IN 列表完全由常數組成,IN 將是非??斓?。如果 expr 是一個字母大小寫敏感的字符串表達式,字符串比較將以大小寫敏感方式執行:mysql> SELECT 2 IN (0,3,5,'wefwf');-> 0mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');-> 1?
iii.邏輯運算符...
邏輯運算符也很常用并且也很簡單...
NOT !邏輯非。 如果操作數為 0,返回 1;如果操作數為非零,返回 0;如果操作數為 NOT NULL,返回 NULL。mysql> SELECT NOT 10;-> 0mysql> SELECT NOT 0;-> 1mysql> SELECT ! 1+1;-> 1 最后一個例子返回 1,因為表達式是與 (!1)+1 一樣被計算的。 AND ,&&邏輯與..當表達式的兩邊同時為1的時候,函數表達式才返回true,否則為false..mysql> SELECT 1 && 1;-> 1 mysql> SELECT 1 && 0;-> 0or ,||邏輯或。。當表達式兩邊同時為0的時候,函數表達式才返回false,否則為true..mysql> SELECT 1 || 1;-> 1 mysql> SELECT 1 || 0;-> 1xor邏輯異或。。當兩邊的不同的時候函數表達式返回true,否則返回true..控制流函數:
?
IFNULL(expr1,expr2) 如果 expr1 為非 NULL 的,IFNULL() 返回 expr1,否則返回 expr2。IFNULL() 返回一個數字或字符串值 mysql> SELECT IFNULL(1,0);-> 1 mysql> SELECT IFNULL(NULL,10);-> 10 如果 expr1 = expr2 為真,返回 NULL,否則返回 expr1。 它等同于 CASE WHEN x = y THEN NULL ELSE x END:mysql> SELECT NULLIF(1,1);-> NULL mysql> SELECT NULLIF(1,2);-> 1 -------------------------------------------------------------------------------- NULLIF(expr1,expr2)如果 expr1 = expr2 為真,返回 NULL,否則返回 expr1。 它等同于 CASE WHEN x = y THEN NULL ELSE x END:mysql> SELECT NULLIF(1,1);-> NULL mysql> SELECT NULLIF(1,2);-> 1 -------------------------------------------------------------------------------- IF(expr1,expr2,expr3) 如果expr1為真,那么將返回expr2的值,否則返回expr3的值 mysql> SELECT IF(1>2,2,3);-> 3 mysql> SELECT IF(1<2,'yes','no');-> 'yes' mysql> SELECT IF(STRCMP('test','test1'),'no','yes');-> 'no' 如果expr2和expr3明確的指為null,那么將返回非NULL的類型.. -------------------------------------------------------------------------------- CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END mysql> SELECT CASE 1 WHEN 1 THEN "one"WHEN 2 THEN "two" ELSE "more" END;-> "one" mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;-> "true" mysql> SELECT CASE BINARY "B" WHEN "a" THEN 1 WHEN "b" THEN 2 END;-> NULL?
總結
以上是生活随笔為你收集整理的Mysql学习笔记(三)运算符和控制流函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: generator探幽(1)--koa中
- 下一篇: 数据库树状结构的关系表的删除方案