MySQL常用函数与运算符

pengy585 8年前
   <h2>运算符</h2>    <h3>算术运算符</h3>    <p>MySQL 支持的算术运算符包括加、减、乘、除和模运算。 在除法运算和模运算中,如果除数为0,将是非法除数,返回结果为NULL。</p>    <h3>比较运算符</h3>    <p>当使用SELECT语句进行查询时, MySQL允许用户对表达式的左边操作数和右边操作数进行比较,比较结果为真,则返回1,为假则返回 0,比较结果不确定则返回NULL。</p>    <p>|符号|描述|备注 |---|---|---| |=| 等于 | |<>, != | 不等于| |>| 大于| |<| 小于| |<= | 小于| | \>= | 大于等于 | |BETWEEN| 在两值之间 | >=min&&<=max |NOT BETWEEN| 不在两值之间 | |IN | 在集合中 | |NOT IN | 不在集合中| |<=> | 严格比较两个NULL值是否相等|两个操作码均为NULL时,其所得值为1;而当一个操作码为NULL时,其所得值为0 |LIKE | 简单模式匹配| |REGEXP | 正则式匹配 | |IS NULL | 为空 | |IS NOT NULL | 不为空 |</p>    <ul>     <li>若有一个或两个参数为 NULL,除非NULL<=> NULL 等运算符,则比较运算的结果为NULL。</li>     <li>若同一个比较运算中的两个参数都是字符串,则按照字符串进行比较。</li>     <li>若两个参数均为整数,则按照整数进行比较。</li>    </ul>    <h3>逻辑运算符</h3>    <p>|运算符|作用| |---|---| |AND&&|逻辑与| |OR \|\||逻辑或| |NOT !|逻辑非| |XOR|异或|</p>    <h3>位运算符</h3>    <p>|运算符|作用| |---|---| |&|位与| |\||位或| |~|位取反| |^|位异或| |>>|右移| |<<|左移|</p>    <h2>常用函数</h2>    <h3>字符串函数</h3>    <p>|函数|说明|备注| |---|---|---| |ASCII(char)| 返回字符的ASCII码值 |BIT <em>LENGTH(str) | 返回字符串的比特长度 |LENGTH(s) | 返回字符串str中的字符数 |CONCAT(s1,s2...,sn)| 将s1,s2...,sn连接成字符串|任何字符串与NULL进行连接的结果都将是NULL |CONCAT</em> 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) | 去除字符串首部和尾部的所有空格</p>    <h3>数值函数</h3>    <p>|函数|说明| |---|---| |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位小数的值</p>    <h3>日期时间函数</h3>    <p>|函数|说明| |---|---| |CURRENT <em>DATE() |返回当前的日期 |CURRENT</em> TIME() |返回当前的时间 |DATE <em>ADD(date,INTERVAL int keyword)| 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE</em> ADD(CURRENT <em>DATE,INTERVAL 6 MONTH); |DATE</em> FORMAT(date,fmt) | 依照指定的fmt格式格式化日期date值 |DATE <em>SUB(date,INTERVAL int keyword)| 返回日期date加上间隔时间int的结果(int必须按照关键字进行格式化),如:SELECT DATE</em> SUB(CURRENT <em>DATE,INTERVAL 6 MONTH); |DAYOFWEEK(date) | 返回date所代表的一星期中的第几天(1~7) |DAYOFMONTH(date) | 返回date是一个月的第几天(1~31) |DAYOFYEAR(date) | 返回date是一年的第几天(1~366) |FROM</em> 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)</p>    <h3>流程函数</h3>    <ul>     <li>CASE WHEN[test1] THEN [result1]...ELSE [default] END 如果testN是真,则返回resultN,否则返回default</li>     <li>CASE [test] WHEN[val1] THEN [result]...ELSE [default] END 如果test和valN相等,则返回resultN,否则返回default</li>     <li>IF(test,t,f) 如果test是真,返回t;否则返回 f</li>     <li>IFNULL(arg1,arg2) 如果arg1不是空,返回arg1,否则返回arg2</li>    </ul>    <p> </p>    <p>来自: <a href="/misc/goto?guid=4959673492883409275" rel="nofollow">http://shanks.leanote.com/post/Mysql函数与运算符</a></p>    <p> </p>