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
相关文章
相关标签/搜索