MySQL經常使用函數與運算符

運算符

算術運算符

MySQL 支持的算術運算符包括加、減、乘、除和模運算。 
在除法運算和模運算中,若是除數爲0,將是非法除數,返回結果爲NULL。函數

比較運算符

當使用SELECT語句進行查詢時, MySQL容許用戶對錶達式的左邊操做數和右邊操做數進行比較,比較結果爲真,則返回1,爲假則返回 0,比較結果不肯定則返回NULL。spa

符號 描述 備註
= 等於  
<>, != 不等於  
> 大於  
< 小於  
<= 小於  
>= 大於等於  
BETWEEN 在兩值之間 >=min&&<=max
NOT BETWEEN 不在兩值之間  
IN 在集合中  
NOT IN 不在集合中  
<=> 嚴格比較兩個NULL值是否相等 兩個操做碼均爲NULL時,其所得值爲1;而當一個操做碼爲NULL時,其所得值爲0
LIKE 簡單模式匹配  
REGEXP 正則式匹配  
IS NULL 爲空  
IS NOT NULL 不爲空  
  • 如有一個或兩個參數爲 NULL,除非NULL <=> NULL 等運算符,則比較運算的結果爲NULL。
  • 若同一個比較運算中的兩個參數都是字符串,則按照字符串進行比較。
  • 若兩個參數均爲整數,則按照整數進行比較。

邏輯運算符

運算符 做用
AND&& 邏輯與
OR || 邏輯或
NOT ! 邏輯非
XOR 異或

位運算符

運算符 做用
& 位與
| 位或
~ 位取反
^ 位異或
>
右移
<< 左移

經常使用函數

字符串函數

函數 說明 備註
ASCII(char) 返回字符的ASCII碼值  
BIT_LENGTH(str) 返回字符串的比特長度  
LENGTH(s) 返回字符串str中的字符數  
CONCAT(s1,s2…,sn) 將s1,s2…,sn鏈接成字符串 任何字符串與NULL進行鏈接的結果都將是NULL
CONCAT_WS(sep,s1,s2…,sn) 將s1,s2…,sn鏈接成字符串,並用sep字符間隔  
LOWER(str) UPPER(str) 返回將字符串str中全部字符改變爲小/大寫後的結果  
LEFT(str,x)  RIGHT(str,x) 返回字符串str中最左/右邊的x個字符 若是第二個參數是NULL,那麼將不返回任何字符串。
LTRIM(str) 從字符串str中切掉開頭的空格  
REPEAT(str,srchstr,rplcstr) 返回字符串str重複x次的結果  
REVERSE(str) 返回顛倒字符串str的結果  
RTRIM(str) 返回字符串str尾部的空格  
STRCMP(s1,s2) 比較字符串s1和s2  
TRIM(str) 去除字符串首部和尾部的全部空格  

數值函數

函數 說明
ABS(x) 返回x的絕對值
BIN(x) 返回x的二進制(OCT返回八進制,HEX返回十六進制)
CEILING(x) 返回大於x的最小整數值
FLOOR(x) 返回小於x的最大整數值
MOD(x,y) 返回x/y的模(餘數)
PI() 返回pi的值(圓周率)
RAND() 返回0到1內的隨機值,能夠經過提供一個參數(種子)使RAND()隨機數生成器生成一個指定的值。
ROUND(x,y) 返回參數x的四捨五入的有y位小數的值

日期時間函數

函數 說明
CURRENT_DATE() 返回當前的日期
CURRENT_TIME() 返回當前的時間
DATE_ADD(date,INTERVAL int keyword) 返回日期date加上間隔時間int的結果(int必須按照關鍵字進行格式化),如:SELECT DATE_ADD(CURRENT_DATE,INTERVAL 6 MONTH);
DATE_FORMAT(date,fmt) 依照指定的fmt格式格式化日期date值
DATE_SUB(date,INTERVAL int keyword) 返回日期date加上間隔時間int的結果(int必須按照關鍵字進行格式化),如:SELECT DATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH);
DAYOFWEEK(date) 返回date所表明的一星期中的第幾天(1~7)
DAYOFMONTH(date) 返回date是一個月的第幾天(1~31)
DAYOFYEAR(date) 返回date是一年的第幾天(1~366)
FROM_UNIXTIME(ts,fmt) 根據指定的fmt格式,格式化UNIX時間戳ts
UNIX_TIMESTAMP(date) 返回日期date的UNIX時間戳
HOUR(time) 返回time的小時值(0~23)
MINUTE(time) 返回time的分鐘值(0~59)
MONTH(date) 返回date的月份值(1~12)
NOW() 返回當前的日期和時間
WEEK(date) 返回日期date爲一年中第幾周(0~53)
YEAR(date) 返回日期date的年份(1000~9999)

流程函數

  • CASE WHEN[test1] THEN [result1]…ELSE [default] END 若是testN是真,則返回resultN,不然返回default
  • CASE [test] WHEN[val1] THEN [result]…ELSE [default] END 若是test和valN相等,則返回resultN,不然返回default
  • IF(test,t,f) 若是test是真,返回t;不然返回 f
  • IFNULL(arg1,arg2) 若是arg1不是空,返回arg1,不然返回arg2
相關文章
相關標籤/搜索