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和s2 s1 == 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 sec)

mysql> select FORMAT(t, 4) from myfloat;
+--------------+
| FORMAT(t, 4) |
+--------------+
| 1.0123       |
| 2.0123       |
| 3.0123       |
+--------------+
3 rows in set (0.02 sec)

mysql> select rand() * 10;
+-----------------+
| rand() * 10     |
+-----------------+
| 4.9611047422151 |
+-----------------+
1 row in set (0.00 sec)

mysql> select floor(rand() * 10);
+--------------------+
| floor(rand() * 10) |
+--------------------+
|                  1 |
+--------------------+
1 row in set (0.00 sec)

mysql> select truncate(1.0123456789, 4);
+---------------------------+
| truncate(1.0123456789, 4) |
+---------------------------+
|                    1.0123 |
+---------------------------+
1 row in set (0.00 sec)

mysql> select truncate(1.0123456789, 0);
+---------------------------+
| truncate(1.0123456789, 0) |
+---------------------------+
|                         1 |
+---------------------------+
1 row in set (0.00 sec)

mysql> select truncate(123456.0123456789, -5);
+---------------------------------+
| truncate(123456.0123456789, -5) |
+---------------------------------+
|                          100000 |
+---------------------------------+
1 row in set (0.00 sec)



你可能感兴趣的:(mysql,function)