mysql經常使用函數

操做符優先級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格式

相關文章
相關標籤/搜索