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惯用(一、字符串和数值)函数》,跪求各位点评,by 搞代码