001 |
|
002 | |
003 | 1.ASCII(str) |
004 | 返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是 NULL ,返回 NULL 。 |
005 | mysql> select ASCII( '2' ); |
006 | -> 50 |
007 | mysql> select ASCII(2); |
008 | -> 50 |
009 | mysql> select ASCII( 'dx' ); |
010 | -> 100也可参见ORD()函数。 |
011 |
012 | 2.ORD(str) |
013 | 如果字符串str最左面字符是一个多字节字符,通过以格式(( first byte ASCII code)*256+( second byte ASCII code))[*256+third byte ASCII code...]返回字符的ASCII代码值来返回多字节字符代码。如果最左面的字符不是一个多字节字符。返回与ASCII()函数返回的相同值。 |
014 | mysql> select ORD( '2' ); |
015 | -> 50 |
016 | 3.CONV(N,from_base,to_base) |
017 | 在不同的数字基之间变换数字。返回数字N的字符串数字,从from_base基变换为to_base基,如果任何参数是 NULL ,返回 NULL 。参数N解释为一个整数,但是可以指定为一个整数或一个字符串。最小基是2且最大的基是36。如果to_base是一个负数,N被认为是一个有符号数,否则,N被当作无符号数。CONV以64位点精度工作。 |
018 | mysql> select CONV( "a" ,16,2); |
019 | -> '1010' |
020 | mysql> select CONV( "6E" ,18,8); |
021 | -> '172' |
022 | mysql> select CONV(-17,10,-18); |
023 | -> '-H' |
024 | mysql> select CONV(10+ "10" + '10' +0xa,10,10); |
025 | -> '40' |
026 | 4.BIN(N) |
027 | 返回二进制值N的一个字符串表示,在此N是一个长整数( BIGINT )数字,这等价于CONV(N,10,2)。如果N是 NULL ,返回 NULL 。 |
028 | mysql> select BIN(12); |
029 | -> '1100' |
030 | 5.OCT(N) |
031 | 返回八进制值N的一个字符串的表示,在此N是一个长整型数字,这等价于CONV(N,10,8)。如果N是 NULL ,返回 NULL 。 |
032 | mysql> select OCT(12); |
033 | -> '14' |
034 | 6.HEX(N) |
035 | 返回十六进制值N一个字符串的表示,在此N是一个长整型( BIGINT )数字,这等价于CONV(N,10,16)。如果N是 NULL ,返回 NULL 。 |
036 | mysql> select HEX(255); |
037 | -> 'FF' |
038 | 7. CHAR (N,...) |
039 | CHAR ()将参数解释为整数并且返回由这些整数的ASCII代码字符组成的一个字符串。 NULL 值被跳过。 |
040 | mysql> select CHAR (77,121,83,81, '76' ); |
041 | -> 'MySQL' |
042 | mysql> select CHAR (77,77.3, '77.3' ); |
043 | -> 'MMM' |
044 | 8.CONCAT(str1,str2,...) |
045 | 返回来自于参数连结的字符串。如果任何参数是 NULL ,返回 NULL 。可以有超过2个的参数。一个数字参数被变换为等价的字符串形式。 |
046 | mysql> select CONCAT( 'My' , 'S' , 'QL' ); |
047 | -> 'MySQL' |
048 | mysql> select CONCAT( 'My' , NULL , 'QL' ); |
049 | -> NULL |
050 | mysql> select CONCAT(14.3); |
051 | -> '14.3' |
052 | 9.LENGTH(str) |
053 | |
054 | 10.OCTET_LENGTH(str) |
055 | |
056 | 11.CHAR_LENGTH(str) |
057 | |
058 | 12.CHARACTER_LENGTH(str) |
059 | 返回字符串str的长度。 |
060 | mysql> select LENGTH( 'text' ); |
061 | -> 4 |
062 | mysql> select OCTET_LENGTH( 'text' ); |
063 | -> 4 |
064 | 注意,对于多字节字符,其CHAR_LENGTH()仅计算一次。 |
065 |
066 | 13.LOCATE(substr,str) |
067 | |
068 | 14.POSITION(substr IN str) |
069 | 返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0. |
070 | mysql> select LOCATE( 'bar' , 'foobarbar' ); |
071 | -> 4 |
072 | mysql> select LOCATE( 'xbar' , 'foobar' ); |
073 | -> 0 |
074 | 该函数是多字节可靠的。 15.LOCATE(substr,str,pos) |
075 | 返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。 |
076 | mysql> select LOCATE( 'bar' , 'foobarbar' ,5); |
077 | -> 7 |
078 | 这函数是多字节可靠的。 |
079 |
080 | 16.INSTR(str,substr) |
081 | 返回子串substr在字符串str中的第一个出现的位置。这与有2个参数形式的LOCATE()相同,除了参数被颠倒。 |
082 | mysql> select INSTR( 'foobarbar' , 'bar' ); |
083 | -> 4 |
084 | mysql> select INSTR( 'xbar' , 'foobar' ); |
085 | -> 0 |
086 | 这函数是多字节可靠的。 |
087 |
088 | 17.LPAD(str,len,padstr) |
089 | 返回字符串str,左面用字符串padstr填补直到str是len个字符长。 |
090 | mysql> select LPAD( 'hi' ,4, '??' ); |
091 | -> '??hi' |
092 | 18.RPAD(str,len,padstr) |
093 | 返回字符串str,右面用字符串padstr填补直到str是len个字符长。 |
094 | mysql> select RPAD( 'hi' ,5, '?' ); |
095 | -> 'hi???' |
096 | 19. LEFT (str,len) |
097 | 返回字符串str的最左面len个字符。 |
098 | mysql> select LEFT ( 'foobarbar' , 5); |
099 | -> 'fooba' |
100 | 该函数是多字节可靠的。 |
101 |
102 | 20. RIGHT (str,len) |
103 | 返回字符串str的最右面len个字符。 |
104 | mysql> select RIGHT ( 'foobarbar' , 4); |
105 | -> 'rbar' |
106 | 该函数是多字节可靠的。 |
107 |
108 | 21. SUBSTRING (str,pos,len) |
109 | |
110 | 22. SUBSTRING (str FROM pos FOR len) |
111 | |
112 | 23.MID(str,pos,len) |
113 | 从字符串str返回一个len个字符的子串,从位置pos开始。使用 FROM 的变种形式是ANSI SQL92语法。 |
114 | mysql> select SUBSTRING ( 'Quadratically' ,5,6); |
115 | -> 'ratica' |
116 | 该函数是多字节可靠的。 |
117 |
118 | 24. SUBSTRING (str,pos) |
119 | |
120 | 25. SUBSTRING (str FROM pos) |
121 | 从字符串str的起始位置pos返回一个子串。 |
122 | mysql> select SUBSTRING ( 'Quadratically' ,5); |
123 | -> 'ratically' |
124 | mysql> select SUBSTRING ( 'foobarbar' FROM 4); |
125 | -> 'barbar' |
126 | 该函数是多字节可靠的。 |
127 |
128 | 26.SUBSTRING_INDEX(str,delim, count ) |
129 | 返回从字符串str的第 count 个出现的分隔符delim之后的子串。如果 count 是正数,返回最后的分隔符到左边(从左边数) 的所有字符。如果 count 是负数,返回最后的分隔符到右边的所有字符(从右边数)。 |
130 | mysql> select SUBSTRING_INDEX( 'www.mysql.com' , '.' , 2); |
131 | -> 'www.mysql' |
132 | mysql> select SUBSTRING_INDEX( 'www.mysql.com' , '.' , -2); |
133 | -> 'mysql.com' |
134 | 该函数对多字节是可靠的。 |
135 |
136 | 27.LTRIM(str) |
137 | 返回删除了其前置空格字符的字符串str。 |
138 | mysql> select LTRIM( ' barbar' ); |
139 | -> 'barbar' |
140 | 28.RTRIM(str) |
141 | 返回删除了其拖后空格字符的字符串str。 |
142 | mysql> select RTRIM( 'barbar ' ); |
143 | -> 'barbar' |
144 | 该函数对多字节是可靠的。 29.TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM ] str) |
145 | 返回字符串str,其所有remstr前缀或后缀被删除了。如果没有修饰符BOTH、LEADING或TRAILING给出,BOTH被假定。如果remstr没被指定,空格被删除。 |
146 | mysql> select TRIM( ' bar ' ); |
147 | -> 'bar' |
148 | mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx' ); |
149 | -> 'barxxx' |
150 | mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx' ); |
151 | -> 'bar' |
152 | mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz' ); |
153 | -> 'barx' |
154 | 该函数对多字节是可靠的。 |
155 |
156 | 21.SOUNDEX(str) |
157 | 返回str的一个同音字符串。听起来“大致相同”的2个字符串应该有相同的同音字符串。一个“标准”的同音字符串长是4个字符,但是SOUNDEX()函数返回一个任意长的字符串。你可以在结果上使用 SUBSTRING ()得到一个“标准”的 同音串。所有非数字字母字符在给定的字符串中被忽略。所有在A-Z之外的字符国际字母被当作元音。 |
158 | mysql> select SOUNDEX( 'Hello' ); |
159 | -> 'H400' |
160 | mysql> select SOUNDEX( 'Quadratically' ); |
161 | -> 'Q36324' |
162 | 22. SPACE (N) |
163 | 返回由N个空格字符组成的一个字符串。 |
164 | mysql> select SPACE (6); |
165 | -> ' ' |
166 | 23. REPLACE (str,from_str,to_str) |
167 | 返回字符串str,其字符串from_str的所有出现由字符串to_str代替。 |
168 | mysql> select REPLACE ( 'www.mysql.com' , 'w' , 'Ww' ); |
169 | -> 'WwWwWw.mysql.com' |
170 | 该函数对多字节是可靠的。 |
171 |
172 | 24.REPEAT(str, count ) |
173 | 返回由重复countTimes次的字符串str组成的一个字符串。如果 count <= 0,返回一个空字符串。如果str或 count 是 NULL ,返回 NULL 。 |
174 | mysql> select REPEAT( 'MySQL' , 3); |
175 | -> 'MySQLMySQLMySQL' |
176 | 25.REVERSE(str) |
177 | 返回颠倒字符顺序的字符串str。 |
178 | mysql> select REVERSE( 'abc' ); |
179 | -> 'cba' |
180 | 该函数对多字节可靠的。 |
181 |
182 | 26. INSERT (str,pos,len,newstr) |
183 | 返回字符串str,在位置pos起始的子串且len个字符长得子串由字符串newstr代替。 |
184 | mysql> select INSERT ( 'Quadratic' , 3, 4, 'What' ); |
185 | -> 'QuWhattic' |
186 | 该函数对多字节是可靠的。 |
187 |
188 | 27.ELT(N,str1,str2,str3,...) |
189 | 如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回 NULL 。ELT()是FIELD()反运算。 |
190 | mysql> select ELT(1, 'ej' , 'Heja' , 'hej' , 'foo' ); |
191 | -> 'ej' |
192 | mysql> select ELT(4, 'ej' , 'Heja' , 'hej' , 'foo' ); |
193 | -> 'foo' |
194 | 28.FIELD(str,str1,str2,str3,...) |
195 | 返回str在str1, str2, str3, ...清单的索引。如果str没找到,返回0。FIELD()是ELT()反运算。 |
196 | mysql> select FIELD( 'ej' , 'Hej' , 'ej' , 'Heja' , 'hej' , 'foo' ); |
197 | -> 2 |
198 | mysql> select FIELD( 'fo' , 'Hej' , 'ej' , 'Heja' , 'hej' , 'foo' ); |
199 | -> 0 |
200 | 29.FIND_IN_SET(str,strlist) |
201 | 如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为 SET 的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是 NULL ,返回 NULL 。如果第一个参数包含一个“,”,该函数将工作不正常。 |
202 | mysql> SELECT FIND_IN_SET( 'b' , 'a,b,c,d' ); |
203 | -> 2 |
204 | 30.MAKE_SET(bits,str1,str2,...) |
205 | 返回一个集合 (包含由“,”字符分隔的子串组成的一个字符串),由相应的位在bits集合中的的字符串组成。str1对应于位0,str2对应位1,等等。在str1, str2, ...中的 NULL 串不添加到结果中。 |
206 | mysql> SELECT MAKE_SET(1, 'a' , 'b' , 'c' ); |
207 | -> 'a' |
208 | mysql> SELECT MAKE_SET(1 | 4, 'hello' , 'nice' , 'world' ); |
209 | -> 'hello,world' |
210 | mysql> SELECT MAKE_SET(0, 'a' , 'b' , 'c' ); |
211 | -> '' |
212 | 31.EXPORT_SET(bits, on , off ,[separator,[number_of_bits]]) |
213 | 返回一个字符串,在这里对于在“bits”中设定每一位,你得到一个“ on ”字符串,并且对于每个复位(reset)的位,你得到一个“ off ”字符串。每个字符串用“separator”分隔(缺省“,”),并且只有“bits”的“number_of_bits” (缺省64)位被使用。 |
214 | mysql> select EXPORT_SET(5, 'Y' , 'N' , ',' ,4) |
215 | -> Y,N,Y,N |
216 | 32.LCASE(str) |
217 | |
218 | 33. LOWER (str) |
219 | 返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成小写。该函数对多字节是可靠的。 |
220 | mysql> select LCASE( 'QUADRATICALLY' ); |
221 | -> 'quadratically' |
222 | 34.UCASE(str) |
223 | |
224 | 35. UPPER (str) |
225 | 返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写。该函数对多字节是可靠的。 |
226 | mysql> select UCASE( 'Hej' ); |
227 | -> 'HEJ' |
228 | 该函数对多字节是可靠的。 |
229 |
230 | 36.LOAD_FILE(file_name) |
231 | 读入文件并且作为一个字符串返回文件内容。文件必须在服务器上,你必须指定到文件的完整路径名,而且你必须有file权限。文件必须所有内容都是可读的并且小于max_allowed_packet。如果文件不存在或由于上面原因之一不能被读出,函数返回 NULL 。 |
232 | mysql> UPDATE table_name |
233 | SET blob_column=LOAD_FILE( "/tmp/picture" ) |
234 | WHERE id=1; |
235 |
236 | MySQL必要时自动变换数字为字符串,并且反过来也如此: |
237 |
238 | mysql> SELECT 1+ "1" ; |
239 | -> 2 |
240 | mysql> SELECT CONCAT(2, ' test' ); |
241 | -> '2 test' |
242 | 如果你想要明确地变换一个数字到一个字符串,把它作为参数传递到CONCAT()。 |
243 |
244 | 如果字符串函数提供一个二进制字符串作为参数,结果字符串也是一个二进制字符串。被变换到一个字符串的数字被当作是一个二进制字符串。这仅影响比较 |