ascii(str)
返回字符串str的最左面字符的ascii代碼值。如果str是空字符串,返回0。如果str是null,返回null。
mysql> select ascii('2');
-> 50
mysql> select ascii(2);
-> 50
mysql> select ascii('dx');
-> 100
也可參見ord()函數。
ord(str)
如果字符串str最左面字符是一個多字節字符,通過以格式((first byte ascii code)*256+(second byte ascii code))[*256+third byte ascii code...]返回字符的ascii代碼值來返回多字節字符代碼。如果最左面的字符不是一個多字節字符。返回與ascii()函數返回的相同值。
mysql> select ord('2');
-> 50
conv(n,from_base,to_base)
在不同的數字基之間變換數字。返回數字n的字符串數字,從from_base基變換為to_base基,如果任何參數是null,返回null。參數n解釋為一個整數,但是可以指定為一個整數或一個字符串。最小基是2且最大的基是36。如果to_base是一個負數,n被認為是一個有符號數,否則,n被當作無符號數。 conv以64位點精度工作。
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的一個字符串表示,在此n是一個長整數(bigint)數字,這等價于conv(n,10,2)。如果n是null,返回null。
mysql> select bin(12);
-> '1100'
oct(n)
返回八進制值n的一個字符串的表示,在此n是一個長整型數字,這等價于conv(n,10,8)。如果n是null,返回null。
mysql> select oct(12);
-> '14'
hex(n)
返回十六進制值n一個字符串的表示,在此n是一個長整型(bigint)數字,這等價于conv(n,10,16)。如果n是null,返回null。
mysql> select hex(255);
-> 'ff'
char(n,...)
char()將參數解釋為整數并且返回由這些整數的ascii代碼字符組成的一個字符串。null值被跳過。
mysql> select char(77,121,83,81,'76');
-> 'mysql'
mysql> select char(77,77.3,'77.3');
-> 'mmm'
concat(str1,str2,...)
返回來自于參數連結的字符串。如果任何參數是null,返回null??梢杂谐^2個的參數。一個數字參數被變換為等價的字符串形式。
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的長度。
mysql> select length('text');
-> 4
mysql> select octet_length('text');
-> 4
注意,對于多字節字符,其char_length()僅計算一次。
locate(substr,str)
position(substr in str)
返回子串substr在字符串str第一個出現的位置,如果substr不是在str里面,返回0.
mysql> select locate('bar', 'foobarbar');
-> 4
mysql> select locate('xbar', 'foobar');
-> 0
該函數是多字節可靠的。
locate(substr,str,pos)
返回子串substr在字符串str第一個出現的位置,從位置pos開始。如果substr不是在str里面,返回0。
mysql> select locate('bar', 'foobarbar',5);
-> 7
這函數是多字節可靠的。
instr(str,substr)
返回子串substr在字符串str中的第一個出現的位置。這與有2個參數形式的locate()相同,除了參數被顛倒。
mysql> select instr('foobarbar', 'bar');
-> 4
mysql> select instr('xbar', 'foobar');
-> 0
這函數是多字節可靠的。
lpad(str,len,padstr)
返回字符串str,左面用字符串padstr填補直到str是len個字符長。
mysql> select lpad('hi',4,'??');
-> '??hi'
rpad(str,len,padstr)
返回字符串str,右面用字符串padstr填補直到str是len個字符長。
mysql> select rpad('hi',5,'?');
-> 'hi???'
left(str,len)
返回字符串str的最左面len個字符。
mysql> select left('foobarbar', 5);
-> 'fooba'
該函數是多字節可靠的。
right(str,len)
返回字符串str的最右面len個字符。
mysql> select right('foobarbar', 4);
-> 'rbar'
該函數是多字節可靠的。
substring(str,pos,len)
substring(str from pos for len)
mid(str,pos,len)
從字符串str返回一個len個字符的子串,從位置pos開始。使用from的變種形式是ansi sql92語法。
mysql> select substring('quadratically',5,6);
-> 'ratica'
該函數是多字節可靠的。
substring(str,pos)
substring(str from pos)
從字符串str的起始位置pos返回一個子串。
mysql> select substring('quadratically',5);
-> 'ratically'
mysql> select substring('foobarbar' from 4);
-> 'barbar'
該函數是多字節可靠的。
substring_index(str,delim,count)
返回從字符串str的第count個出現的分隔符delim之后的子串。如果count是正數,返回最后的分隔符到左邊(從左邊數) 的所有字符。如果count是負數,返回最后的分隔符到右邊的所有字符(從右邊數)。
mysql> select substring_index('m.survivalescaperooms.com', '.', 2);
-> 'www.VeVb'
mysql> select substring_index('m.survivalescaperooms.com', '.', -2);
-> 'VeVb.com'
該函數對多字節是可靠的。
ltrim(str)
返回刪除了其前置空格字符的字符串str。
mysql> select ltrim(' barbar');
-> 'barbar'
rtrim(str)
返回刪除了其拖后空格字符的字符串str。
mysql> select rtrim('barbar ');
-> 'barbar'
該函數對多字節是可靠的。
trim([[both | leading | trailing] [remstr] from] str)
返回字符串str,其所有remstr前綴或后綴被刪除了。如果沒有修飾符both、leading或trailing給出,both被假定。如果remstr沒被指定,空格被刪除。
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的一個同音字符串。聽起來“大致相同”的2個字符串應該有相同的同音字符串。一個“標準”的同音字符串長是4個字符,但是soundex()函數返回一個任意長的字符串。你可以在結果上使用substring()得到一個“標準”的 同音串。所有非數字字母字符在給定的字符串中被忽略。所有在a-z之外的字符國際字母被當作元音。
mysql> select soundex('hello');
-> 'h400'
mysql> select soundex('quadratically');
-> 'q36324'
space(n)
返回由n個空格字符組成的一個字符串。
mysql> select space(6);
-> ' '
replace(str,from_str,to_str)
返回字符串str,其字符串from_str的所有出現由字符串to_str代替。
mysql> select replace('m.survivalescaperooms.com', 'w', 'ww');
-> 'wwwm.survivalescaperooms.com'
該函數對多字節是可靠的。
repeat(str,count)
返回由重復counttimes次的字符串str組成的一個字符串。如果count <= 0,返回一個空字符串。如果str或count是null,返回null。
mysql> select repeat('mysql', 3);
-> 'mysqlmysqlmysql'
reverse(str)
返回顛倒字符順序的字符串str。
mysql> select reverse('abc');
-> 'cba'
該函數對多字節可靠的。
insert(str,pos,len,newstr)
返回字符串str,在位置pos起始的子串且len個字符長得子串由字符串newstr代替。
mysql> select insert('quadratic', 3, 4, 'what');
-> 'quwhattic'
該函數對多字節是可靠的。
elt(n,str1,str2,str3,...)
如果n= 1,返回str1,如果n= 2,返回str2,等等。如果n小于1或大于參數個數,返回null。elt()是field()反運算。
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');
-> 'ej'
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');
-> 'foo'
field(str,str1,str2,str3,...)
返回str在str1, str2, str3, ...清單的索引。如果str沒找到,返回0。field()是elt()反運算。
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在由n子串組成的表strlist之中,返回一個1到n的值。一個字符串表是被“,”分隔的子串組成的一個字符串。如果第一個參數是一個常數字符串并且第二個參數是一種類型為set的列,find_in_set()函數被優化而使用位運算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一個參數是null,返回null。如果第一個參數包含一個“,”,該函數將工作不正常。
mysql> select find_in_set('b','a,b,c,d');
-> 2
make_set(bits,str1,str2,...)
返回一個集合 (包含由“,”字符分隔的子串組成的一個字符串),由相應的位在bits集合中的的字符串組成。str1對應于位0,str2對應位1,等等。在str1, str2, ...中的null串不添加到結果中。
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”中設定每一位,你得到一個“on”字符串,并且對于每個復位(reset)的位,你得到一個“off”字符串。每個字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。
mysql> select export_set(5,'y','n',',',4)
-> y,n,y,n
lcase(str)
lower(str)
返回字符串str,根據當前字符集映射(缺省是iso-8859-1 latin1)把所有的字符改變成小寫。該函數對多字節是可靠的。
mysql> select lcase('quadratically');
-> 'quadratically'
ucase(str)
upper(str)
返回字符串str,根據當前字符集映射(缺省是iso-8859-1 latin1)把所有的字符改變成大寫。該函數對多字節是可靠的。
mysql> select ucase('hej');
-> 'hej'
該函數對多字節是可靠的。
load_file(file_name)
讀入文件并且作為一個字符串返回文件內容。文件必須在服務器上,你必須指定到文件的完整路徑名,而且你必須有file權限。文件必須所有內容都是可讀的并且小于max_allowed_packet。如果文件不存在或由于上面原因之一不能被讀出,函數返回null。
mysql> update table_name
set blob_column=load_file("/tmp/picture")
where id=1;
mysql必要時自動變換數字為字符串,并且反過來也如此:
mysql> select 1+"1";
-> 2
mysql> select concat(2,' test');
-> '2 test'
新聞熱點
疑難解答