2.5 进制间的转换
BIN(x)
返回x的二进制编码
HEX(x)
返回x的十六进制编码
OCT(x)
返回x的八进制编码
CONV(x,f1,f2)
返回f1进制数的x变成f2进制数
代码示例
SELECT BIN(10), HEX(10), OCT(10), CONV(10,2,8) FROM DUAL;
3 字符串函数
注意:MySQL中,字符串的位置是从1开始的。
ASCII(S)
返回字符串S中的第一个字符的ASCII码值.
与第一个字符后面的其他字符无关。
SELECT ASCII('Abcdfsf') FROM DUAL;
CHAR_LENGTH(s)
返回字符串s的字符数。作用与CHARACTER_LENGTH(s)相同。
SELECT CHAR_LENGTH('hello'), CHAR_LENGTH('我们') FROM DUAL;
LENGTH(s)
返回字符串s的字节数,和字符集有关
utf-8 中每个中文字符占三个字节
SELECT LENGTH('hello'), LENGTH('我们') FROM DUAL;
CONCAT(s1,s2,…,sn)
连接s1,s2,…,sn为一个字符串
SELECT CONCAT('zs',' worked for ','ls') FROM DUAL;
CONCAT_WS(x, s1,s2,…,sn)
同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上x
SELECT concat_ws('---', 'zs', 'ls', 'ww') FROM DUAL;
INSERT(str, idx, len, replacestr)
将字符串str从第idx位置开始,len个字符长的子串替换为字符串replacestr
注意:MySQL中,字符串的位置是从1开始的。
SELECT INSERT('helloworld',2,3,'aaaaa') FROM DUAL;
REPLACE(str, a, b)
用字符串b替换字符串str中所有出现的字符串a
字符串str中不存在子字符串a,不进行替换。
SELECT replace('hello', 'll', 'mm'), REPLACE('hello','lol','mmm') FROM DUAL;
UPPER(s) 或 UCASE(s)
将字符串s的所有字母转成大写字母
SELECT UPPER('HelLo'),UCASE('HelLo') FROM DUAL;
LOWER(s) 或LCASE(s)
将字符串s的所有字母转成小写字母
SELECT LOWER('HelLo'),LCASE('HelLo') FROM DUAL;
LEFT(str,n)
返回字符串str最左边的n个字符
RIGHT(str,n)
返回字符串str最右边的n个字符
SELECT LEFT('hello',2),RIGHT('hello',3),RIGHT('hello',13) FROM DUAL;
LPAD(str, len, pad)
用字符串pad对str最左边进行填充,直到str的长度为len个字符
实现右对齐效果
RPAD(str ,len, pad)
用字符串pad对str最右边进行填充,直到str的长度为len个字符
实现左对齐效果
SELECT LPAD('hello', 7,' '), LPAD('world', 7,' '), LPAD('aa', 7,' '), RPAD('hello', 7,' '), RPAD('world', 7,' '), RPAD('aa', 7,' ') FROM dual;
LTRIM(s)
去掉字符串s左侧的空格
RTRIM(s)
去掉字符串s右侧的空格
TRIM(s)
去掉字符串s开始与结尾的空格
SELECT ' he l lo ', CONCAT('*', LTRIM(' he l lo '), '*'), CONCAT('*', RTRIM(' he l lo '), '*'), CONCAT('*', TRIM(' he l lo '), '*') FROM dual;
TRIM(s1 FROM s)
去掉字符串s开始与结尾的s1
TRIM(LEADING s1 FROM s)
去掉字符串s开始处的s1
TRIM(TRAILING s1 FROM s)
去掉字符串s结尾处的s1
SELECT TRIM('oo' FROM 'ooheollo'), TRIM(LEADING 'o' FROM 'ooheollo'), TRIM(TRAILING 'o' FROM 'ooheollo') FROM DUAL;
REPEAT(str, n)
返回str重复n次的结果
SELECT REPEAT('hello',4) FROM DUAL;