日期:2014-05-16  浏览次数:20747 次

MySql常用(一、字符串和数值)函数
5.1字符串函数
函数名称功能举例结果
ASCII(char)返回字符的ASCII码值select ASCII('A');65
CONCAT(s1, s2, ..., sn)将s1,s2...,sn连接成字符串select concat('a', 'b', 'c');abc
CONCAT_WS(sep, s1, s2, ..., sn)将s1,s2...,sn连接成字符串,并用sep字符间隔select concat_ws('-', 'a', 'b', 'c');a-b-c
INSERT(str, x, y, instr)将字符串str从第x位置开始,y个字符长的子串替换为字符串instr,返回结果select insert('abcde', 2, 2, 'lcl');alclde
LCASE(str)或LOWER(str)返回将字符串str中所有字符改变为小写后的结果
UCASE(str)或UPPER(str)返回将字符串str中所有字符转变为大写后的结果
LEFT(str, x)返回字符串str中最左边的x个字符select left('beijing', 3);bei
RIGHT(str, x)返回字符串str中最右边的x个字符select right('beijing', 3);ing
LPAD(str, n, pad)用字符串pad对str最左边进行填充,直到字符为n个字符长度
RPAD(str, n, pad)用字符串pad对str最右边进行填充,直到字符为n个字符长度
TRIM(str)去掉字符串两端的空格
LTRIM(str)去掉字符串左侧的空格select ltrim('  beijing  '); beijing  
RTRIM(str)去掉字符串右侧的空格select rtrim('  beijing  ');   beijing
REPEAT(str, x)返回字符串str重复x次的结果select repeat('beijing', 2);beijingbeijing
REPLACE(str, a, b)用字符串b替换字符串str中出现的所有字符串a
STRCMP(s1, s2)比较字符串s1和s2s1 == s2 : 返回0, s1 < s2 : 返回-1, s1 > s2 : 返回1
SUBSTRING(str, x, y)返回从字符串str第x个位置起y个字符长度的子串select substring('beijing', 2, 3);eij
POSITION(substr in str)返回子串substr在字符串str中第一次出现的位置SELECT POSITION('bar' in 'foobarbar'); 4(注意in的使用)
LOCATE(substr,str)函数返回子串substr在字符串str中第一次出现的位置。如果子串substr在str中不存在,返回值为0。SELECT LOCATE('bar', 'foobarbar'); 4
QUOTE(str)用反斜杠转义str中的单引号select QUOTE("bei'jing'");'bei\'jing\''
LENGTH(str)返回字符串的长度SELECT LENGTH('abc');3


5.2数值函数
函数名称功能举例结果
PI()获取π的值select PI();3.141593
ABS(x)返回x的绝对值
CEIL(x)返回大于x的最小整数值
FLOOR(x)返回小于x的最大整数值
MOD(x, y)返回x/y的摸
ROUND(x, y)返回参数x的四舍五入的有y位小数的值
RAND()  RAND(N)获取随机值,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。
FORMAT(X,D)将数字X的格式写为'#,###,###.##',以四舍五入的方式保留小数点后D位,并将结果以字符串的形式返回。若D为0, 则返回结果不带有小数点,或不含小数部分。
TRUNCATE(X,D)返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,则归零X小数点左起第D位开始后面所有低位的值。 

mysql> SELECT FORMAT(12332, 4);
+------------------+
| FORMAT(12332, 4) |
+------------------+
| 12,332.0000      |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT(12332.123456, 0);
+-------------------------+
| FORMAT(12332.123456, 0) |
+-------------------------+
| 12,332                  |
+-------------------------+
1 row in set (0.00 sec)

mysql> SELECT FORMAT(12332.123456, 4);
+-------------------------+
| FORMAT(12332.123456, 4) |
+-------------------------+
| 12,332.1235             |
+-------------------------+
1 row in set (0.00 s