MySQL 支持的算术运算符包括加、减、乘、除和模运算。 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。
当使用SELECT语句进行查询时, MySQL允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回1,为假则返回 0,比较结果不确定则返回NULL。
|符号|描述|备注 |---|---|---| |=| 等于 | |<>, != | 不等于| |>| 大于| |<| 小于| |<= | 小于| | />= | 大于等于 | |BETWEEN| 在两值之间 | >=min&&<=max |NOT BETWEEN| 不在两值之间 | |IN | 在集合中 | |NOT IN | 不在集合中| |<=> | 严格比较两个NULL值是否相等|两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0 |LIKE | 简单模式匹配| |REGEXP | 正则式匹配 | |IS NULL | 为空 | |IS NOT 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)