操做符優先級mysql
下圖展現了全部操做符的執行優先級,從高到低,同一行中的操做符優先級相同,相同優先級的狀況下則從左到右執行,若是想改變優先級執行順序,則能夠使用括號sql
對比操做符函數
•對比操做符的執行結果爲true,false,null三種
• Coalesce()表明返回第一個非Null的值
• Greatest()表明返回最大的值
• In()表明檢查值是否在一系列的值之中
• Interval()表明返回比第一個參數小的參數的位置spa
• Isnull()表明檢查參數是NULL
• Least()表明返回最小的參數unix
• Strcmp()對比兩個字符串orm
邏輯操做符blog
• 邏輯操做符返回1 (TRUE), 0 (FALSE), 或者NULL字符串
• Xor邏輯操做符
• mysql> SELECT 1 XOR 1;
• -> 0
• mysql> SELECT 1 XOR 0;
• -> 1
• mysql> SELECT 1 XOR NULL;
• -> NULL
• mysql> SELECT 1 XOR 1 XOR 1;
• -> 1it
流程控制函數ast
• 流程控制函數包含如下四種函數
語法格式:
• CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
注: 當value等於compare_value時,則返回result,不然返回else裏的result,若是沒有else子句則返回null
例:
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
mysql-> 'one'
• IF(expr1,expr2,expr3)
• 當expr1爲1/true時,則返回expr2,不然返回expr3
• IFNULL(expr1,expr2)
• 當expr1爲非null時,則返回expr1,不然返回exp2
• NULLIF(expr1,expr2)
• 當expr1等於expr2時,則返回null,不然返回exp1
字符串函數
• CHAR_LENGTH(str)
• 返回字符串的字符長度
• CONCAT(str1,str2,...)
• 返回括號裏全部參數字符串鏈接在一塊兒,當其中有參數爲NULL時則返回NULL
• CONCAT_WS(separator,str1,str2,...)
• 返回以第一個參數爲分隔符的鏈接後的一個字符串,當有參數爲NULL時則null被忽略
• INSERT(str,pos,len,newstr)
• 將str中從pos位置開始後的len個字符替換成newstr字符串
例:
• mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
• mysql-> 'QuWhattic
• INSTR(str,substr)
• 返回str字符串中第一個出現substr字符串的位置
例:
• mysql> SELECT INSTR('foobarbar', 'bar');
• mysql-> 4
• LEFT(str,len)
• 返回str字符串中從左邊開始的len個長度的字符
例:
• mysql> SELECT LEFT('foobarbar', 5);
• mysql-> 'fooba'
• LENGTH(str)
• 返回str字符串的byte字節長度
• mysql> SELECT LENGTH('text');
• mysql-> 4
• LOWER(str)
• 返回將str字符串中全部字符變換成小寫後的字符串,但對二進制文本無效
例:
• mysql> SELECT LOWER('QUADRATICALLY');
• mysql-> 'quadratically'
• UPPER(str)
• 返回將str字符串中全部字符轉換成大寫的字符串
例;
• mysql> SELECT UPPER('Hej');
• mysql-> 'HEJ'
• LTRIM(str) | RTRIM(str)
• 將str最左邊|最右邊的空格去掉並返回
例:
• mysql> SELECT LTRIM(' barbar');
• mysql-> 'barbar‘
• REPLACE(str,from_str,to_str)
• 將全部str字符串中匹配from_str子串的地方都替換成to_str子字符串
例:
• mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
• mysql-> 'WwWwWw.mysql.com'
日期和時間函數
• ADDDATE(date,INTERVAL expr unit), ADDDATE(expr,days)
• 當expr爲正數時則爲增長時間,爲負數時則爲減小時間
• Unit參數能夠是任意時間單位
例:
• mysql> SELECT ADDDATE('2018-01-02', INTERVAL 31 DAY);
• mysql-> '2018-02-02'
• DATE(expr)
• 獲取expr中的日期
例:
• mysql> SELECT DATE('2018-12-31 01:02:03');
•mysql -> '2018-12-31'
• DATE_ADD(date,INTERVAL expr unit)
• 增長時間
例:
• mysql> SELECT DATE_ADD('2018-12-31 23:59:59' INTERVAL 1 SECOND);
•mysql-> '2019-01-01 00:00:00'
• mysql> SELECT DATE_ADD('2018-12-31 23:59:59' INTERVAL 1 DAY);
• mysql-> '2019-01-01 23:59:59'
• FROM_UNIXTIME(unix_timestamp)
• 根據給定的unixtime,返回yyyy-mm-dd hh:mi:ss
• UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
• 若是沒有date參數,則返回當前時間到1970-01-01 00:00:00之間的秒數,若是有date參數,則表示date到1970-01-01 00:00:00之間的秒數
• mysql> SELECT UNIX_TIMESTAMP('2015-11-13 10:20:19');
• mysql-> 1447431619
• DATE_FORMAT(date,format)
• 將date日期時間轉換成format格式