轉(zhuǎn)自公眾號(hào)‘java一日一條’
1.字符串函數(shù)
ascii(str)
返回字符串str的第一個(gè)字符的ascii值(str是空串時(shí)返回0)
mysql> select ascii('2');
-> 50
mysql> select ascii(2);
-> 50
mysql> select ascii('dete');
-> 100
ord(str)
如果字符串str句首是單字節(jié)返回與ascii()函數(shù)返回的相同值衍腥。
如果是一個(gè)多字節(jié)字符,以格式返回((first byte ascii code)256+(second byte ascii code))[256+third byte asciicode...]
mysql> select ord('2');
-> 50
conv(n,from_base,to_base)
對(duì)數(shù)字n進(jìn)制轉(zhuǎn)換,并轉(zhuǎn)換為字串返回(任何參數(shù)為null時(shí)返回null,進(jìn)制范圍為2-36進(jìn)制,當(dāng)to_base是負(fù)數(shù)時(shí)n作為有符號(hào)數(shù)否則作無符號(hào)數(shù),conv以64位點(diǎn)精度工作)
mysql> select conv("a",16,2);
-> '1010'
mysql> select conv("6e",18,8);
-> '172'
mysql> select conv(-17,10,-18);
-> '-h'
mysql> select conv(10+"10"+'10'+0xa,10,10);
-> '40'
bin(n)
把n轉(zhuǎn)為二進(jìn)制值并以字串返回(n是bigint數(shù)字,等價(jià)于conv(n,10,2))
mysql> select bin(12);
-> '1100'
oct(n)
把n轉(zhuǎn)為八進(jìn)制值并以字串返回(n是bigint數(shù)字,等價(jià)于conv(n,10,8))
mysql> select oct(12);
-> '14'
hex(n)
把n轉(zhuǎn)為十六進(jìn)制并以字串返回(n是bigint數(shù)字,等價(jià)于conv(n,10,16))
mysql> select hex(255);
-> 'ff'
char(n,...)
返回由參數(shù)n,...對(duì)應(yīng)的ascii代碼字符組成的一個(gè)字串(參數(shù)是n,...是數(shù)字序列,null值被跳過)
mysql> select char(77,121,83,81,'76');
-> 'mysql'
mysql> select char(77,77.3,'77.3');
-> 'mmm'
concat(str1,str2,...)
把參數(shù)連成一個(gè)長字符串并返回(任何參數(shù)是null時(shí)返回null)
mysql> select concat('my', 's', 'ql');
-> 'mysql'
mysql> select concat('my', null, 'ql');
-> null
mysql> select concat(14.3);
-> '14.3'
length(str)
octet_length(str)
char_length(str)
character_length(str)
返回字符串str的長度(對(duì)于多字節(jié)字符char_length僅計(jì)算一次)
mysql> select length('text');
-> 4
mysql> select octet_length('text');
-> 4
locate(substr,str)
position(substr in str)
返回字符串substr在字符串str第一次出現(xiàn)的位置(str不包含substr時(shí)返回0)
mysql> select locate('bar', 'foobarbar');
-> 4
mysql> select locate('xbar', 'foobar');
-> 0
locate(substr,str,pos)
返回字符串substr在字符串str的第pos個(gè)位置起第一次出現(xiàn)的位置(str不包含substr時(shí)返回0)
mysql> select locate('bar', 'foobarbar',5);
-> 7
instr(str,substr)
返回字符串substr在字符串str第一次出現(xiàn)的位置(str不包含substr時(shí)返回0)
mysql> select instr('foobarbar', 'bar');
-> 4
mysql> select instr('xbar', 'foobar');
-> 0
lpad(str,len,padstr)
用字符串padstr填補(bǔ)str左端直到字串長度為len并返回
mysql> select lpad('hi',4,'??');
-> '??hi'
rpad(str,len,padstr)
用字符串padstr填補(bǔ)str右端直到字串長度為len并返回
mysql> select rpad('hi',5,'?');
-> 'hi???'
left(str,len)
返回字符串str的左端len個(gè)字符
mysql> select left('foobarbar', 5);
-> 'fooba'
right(str,len)
返回字符串str的右端len個(gè)字符
mysql> select right('foobarbar', 4);
-> 'rbar'
substring(str,pos,len)
substring(str from pos for len)
mid(str,pos,len)
返回字符串str的位置pos起len個(gè)字符
mysql> select substring('quadratically',5,6);
-> 'ratica'
substring(str,pos)
substring(str from pos)
返回字符串str的位置pos起的一個(gè)子串
mysql> select substring('quadratically',5);
-> 'ratically'
mysql> select substring('foobarbar' from 4);
-> 'barbar'
substring_index(str,delim,count)
返回從字符串str的第count個(gè)出現(xiàn)的分隔符delim之后的子串
(count為正數(shù)時(shí)返回左端,否則返回右端子串)
mysql> select substring_index('www.mysql.com', '.', 2);
-> 'www.mysql'
mysql> select substring_index('www.mysql.com', '.', -2);
-> 'mysql.com'
ltrim(str)
返回刪除了左空格的字符串str
mysql> select ltrim(' barbar');
-> 'barbar'
rtrim(str)
返回刪除了右空格的字符串str
mysql> select rtrim('barbar ');
-> 'barbar'
trim([[both | leading | trailing] [remstr] from] str)
返回前綴或后綴remstr被刪除了的字符串str(位置參數(shù)默認(rèn)both,remstr默認(rèn)值為空格)
mysql> select trim(' bar ');
-> 'bar'
mysql> select trim(leading 'x' from 'xxxbarxxx');
-> 'barxxx'
mysql> select trim(both 'x' from 'xxxbarxxx');
-> 'bar'
mysql> select trim(trailing 'xyz' from 'barxxyz');
-> 'barx'
soundex(str)
返回str的一個(gè)同音字符串(聽起來“大致相同”字符串有相同的
同音字符串,非數(shù)字字母字符被忽略,在a-z外的字母被當(dāng)作元音)
mysql> select soundex('hello');
-> 'h400'
mysql> select soundex('quadratically');
-> 'q36324'
space(n)
返回由n個(gè)空格字符組成的一個(gè)字符串
mysql> select space(6);
-> ' '
replace(str,from_str,to_str)
用字符串to_str替換字符串str中的子串from_str并返回
mysql> select replace('www.mysql.com', 'w', 'ww');
-> 'wwwwww.mysql.com'
repeat(str,count)
返回由count個(gè)字符串str連成的一個(gè)字符串(任何參數(shù)為null時(shí)
返回null,count<=0時(shí)返回一個(gè)空字符串)
mysql> select repeat('mysql', 3);
-> 'mysqlmysqlmysql'
reverse(str)
顛倒字符串str的字符順序并返回
mysql> select reverse('abc');
-> 'cba'
insert(str,pos,len,newstr)
把字符串str由位置pos起len個(gè)字符長的子串替換為字符串
newstr并返回
mysql> select insert('quadratic', 3, 4, 'what');
-> 'quwhattic'
elt(n,str1,str2,str3,...)
返回第n個(gè)字符串(n小于1或大于參數(shù)個(gè)數(shù)返回null)
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');
-> 'ej'
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');
-> 'foo'
field(str,str1,str2,str3,...)
返回str等于其后的第n個(gè)字符串的序號(hào)(如果str沒找到返回0)
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
'foo');
-> 2
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
'foo');
-> 0
find_in_set(str,strlist)
返回str在字符串集strlist中的序號(hào)(任何參數(shù)是null則返回
null,如果str沒找到返回0,參數(shù)1包含","時(shí)工作異常)
mysql> select find_in_set('b','a,b,c,d');
-> 2
make_set(bits,str1,str2,...)
把參數(shù)1的數(shù)字轉(zhuǎn)為二進(jìn)制,假如某個(gè)位置的二進(jìn)制位等于1,對(duì)應(yīng)
位置的字串選入字串集并返回(null串不添加到結(jié)果中)
mysql> select make_set(1,'a','b','c');
-> 'a'
mysql> select make_set(1 | 4,'hello','nice','world');
-> 'hello,world'
mysql> select make_set(0,'a','b','c');
-> ''
export_set(bits,on,off,[separator,[number_of_bits]])
按bits排列字符串集,只有當(dāng)位等于1時(shí)插入字串on,否則插入
off(separator默認(rèn)值",",number_of_bits參數(shù)使用時(shí)長度不足補(bǔ)0
而過長截?cái)?
mysql> select export_set(5,'y','n',',',4)
-> y,n,y,n
lcase(str)
lower(str)
返回小寫的字符串str
mysql> select lcase('quadratically');
-> 'quadratically'
ucase(str)
upper(str)
返回大寫的字符串str
mysql> select ucase('quadratically');
-> 'quadratically'
load_file(file_name)
讀入文件并且作為一個(gè)字符串返回文件內(nèi)容(文件無法找到,路徑
不完整,沒有權(quán)限,長度大于max_allowed_packet會(huì)返回null)
mysql> update table_name set blob_column=load_file
("/tmp/picture") where id=1;