mysql字符串函数
字符串第一个位置下标为1
- ASCII(str): 返回最左边字符的ASCII代码值
- CONV(N, from_base, to_base): 在不同基数之间转化数字,返回数字N的字符串数字,如果任何参数为NULL则返回NULL。如果to_base是一个负数,则被认为是一个有符号数。
mysql> select CONV('a', 16, 2); 1010 mysql> select CONV('6E', 18, 8); 172 mysql> select CONV(-17, 10, -18); '-H'
- BIN(N): 返回N的二进制字符串表示,等价于CONV(N, 10, 2).
- OCT(N)
- HEX(N)
- CHAR(N1, N2, ...): 将参数转化为整数并连成一个字符串返回,这里参数相当与ASCII码,返回相应的那个字符。
mysql> select CHAR(77, 121, 83, 81, '76'); 'MySQL'
- CONCAT(str1, str2, ...): 连接字符串,数字参数会转化为对应的字符。
- LENGTH(str)
- OCTET_LENGTH(str)
- CHARACTER_LENGTH(str): 返回字符串的长度
- LOCATE(substr, str): 如果找不到则返回0,注意下标从1开始
- INSTR(str, substr): 与LOCATE()参数相反
- LPAD(str, len, padstr): 返回字符串str, 左边用padstr填补知道len长度
mysql> select LPAD('1234', 5, 'ab'); 'a1234'
- RPAD(str, len, padstr)
- LEFT(str, len): 返回最左边的len个字符
- RIGHT(str, len)
- MID(str, pos, len): 返回str从pos位置开始长度为len的字串
- SUBSTRING(str, pos)
- SUBSTRING_INDEX(str, delim, count): 以从左往右数第count个分隔符delim为界限,返回左边或者右边的子字符串,count为正时返回左边的,count为负时返回右边的
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2); 'www.mysql'
- LTRIM(str): 返回删除前置空格的字符串
- RTRIM(str)
- TRIM([LEADING | TRAILING | BOTH] [remstr] FROM str): 删除掉前边|后边|两边的子串remstr,默认为BOTH, remstr默认为空格
select TRIM(TRAILING 'abc' FROM '1234abc'); '1234'
- SPACE(N): 返回由N个空格组成的字符串
- REPLACE(str, from_str, to_str)
- REPEAT(str, count)
- REVERSE(str)
- INSERT(str, pos, len, newstr): str从pos开始长度为len的子字符串由newstr代替
- ELT(N, str1, str2, str3, ...): 如果N = 1,返回str1, N = 2, 返回str2...
- FIELD(str, str1, str2, str3, ...): 返回str是第几个
- FIND_IN_SET(str, strlist): 如果str在strlist之中,返回一个数字表示str出现在第几个
mysql> select FIND_IN_SET('b', 'a,b,c,d'); 2
- MAKE_SET(bits, str1, str2, ...): 返回由str1...其中的一些组合成的字符串,以','形式分隔,bits二进制对应的位如果为1则选中该str,str1对应位0,str2对应位1...
mysql> select MAKE_SET(1 | 2,'hello','nice','world'); 'hello,nice' mysql> MAKE_SET(4 | 2 ,'hello','nice','world'); 'nice,world' mysql> SELECT MAKE_SET(0,'a','b','c'); ''
- EXPORT_SET(bits, on, off, [separator, [number_of_bits]]): 类似与bits,bits二进制数中1的位用on表示,0的位用off表示,默认separator是',',bits位数少于number_of_bits则在后面用off补全
mysql> select EXPORT_SET(8 | 2 | 1, 'a', 'b', ',', '6'); a,a,b,a,b,b
- LOWER(str): 返回小写
- UPPER(str)
- LOAD_FILE(file_name): 读入文件并且作为字符串内容返回文件内容,文件必须在服务器上,而且必须具有访问权限。
- mysql必要的时候会自动变换数子和字符串
mysql> select 1 + '1'; 2 mysql> select CONCAT(2, ' test'); '2 test'