⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 06-3.html

📁 MySQL4.1.0 中文参考手册
💻 HTML
📖 第 1 页 / 共 5 页
字号:

<A NAME="IDX1180"></A>
<DT><CODE>LPAD(str,len,padstr)</CODE>
<DD>
用字符串 <CODE>padstr</CODE> 对 <CODE>str</CODE> 进行左边填补直至它的长度达到 <CODE>len</CODE> 个字符长度,然后返回 <CODE>str</CODE>。如果 <CODE>str</CODE> 的长度长于 <CODE>len'</CODE>,那么它将被截除到 <CODE>len</CODE> 个字符。

<PRE>
mysql&#62; SELECT LPAD('hi',4,'??');
        -&#62; '??hi'
</PRE>

<A NAME="IDX1181"></A>
<DT><CODE>RPAD(str,len,padstr)</CODE>
<DD>
用字符串 <CODE>padstr</CODE> 对 <CODE>str</CODE> 进行右边填补直至它的长度达到 <CODE>len</CODE> 个字符长度,然后返回 <CODE>str</CODE>。如果 <CODE>str</CODE> 的长度长于 <CODE>len'</CODE>,那么它将被截除到 <CODE>len</CODE> 个字符。


<PRE>
mysql&#62; SELECT RPAD('hi',5,'?');
        -&#62; 'hi???'
</PRE>

<A NAME="IDX1182"></A>
<DT><CODE>LEFT(str,len)</CODE>
<DD>
返回字符串 <CODE>str</CODE> 中最左边的 <CODE>len</CODE> 个字符:

<PRE>
mysql&#62; SELECT LEFT('foobarbar', 5);
        -&#62; 'fooba'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1183"></A>
<DT><CODE>RIGHT(str,len)</CODE>
<DD>
返回字符串 <CODE>str</CODE> 中最右边的 <CODE>len</CODE> 个字符:

<PRE>
mysql&#62; SELECT RIGHT('foobarbar', 4);
        -&#62; 'rbar'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1184"></A>
<A NAME="IDX1185"></A>
<DT><CODE>SUBSTRING(str,pos,len)</CODE>
<DD>
<DT><CODE>SUBSTRING(str FROM pos FOR len)</CODE>
<DD>
<DT><CODE>MID(str,pos,len)</CODE>
<DD>
从字符串 <CODE>str</CODE> 的 <CODE>pos</CODE> 位置起返回 <CODE>len</CODE> 个字符的子串。使用 <CODE>FROM</CODE> 的变体形式是 ANSI SQL92 的句法:

<PRE>
mysql&#62; SELECT SUBSTRING('Quadratically',5,6);
        -&#62; 'ratica'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1186"></A>
<DT><CODE>SUBSTRING(str,pos)</CODE>
<DD>
<DT><CODE>SUBSTRING(str FROM pos)</CODE>
<DD>
从字符串 <CODE>str</CODE> 的 <CODE>pos</CODE> 位置起返回子串:

<PRE>
mysql&#62; SELECT SUBSTRING('Quadratically',5);
        -&#62; 'ratically'
mysql&#62; SELECT SUBSTRING('foobarbar' FROM 4);
        -&#62; 'barbar'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1187"></A>
<DT><CODE>SUBSTRING_INDEX(str,delim,count)</CODE>
<DD>
返回字符串 <CODE>str</CODE> 中在第 <CODE>count</CODE> 个出现的分隔符 <CODE>delim</CODE> 之前的子串。如果 <CODE>count</CODE> 是一个正数,返回从最后的(从左边开始计数)分隔符到左边所有字符。如果 <CODE>count</CODE> 是负数,返回从最后的(从右边开始计数)分隔符到右边所有字符:

<PRE>
mysql&#62; SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -&#62; 'www.mysql'
mysql&#62; SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -&#62; 'mysql.com'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1188"></A>
<DT><CODE>LTRIM(str)</CODE>
<DD>
返回移除了领头的空格字符后的 <CODE>str</CODE>:

<PRE>
mysql&#62; SELECT LTRIM('  barbar');
        -&#62; 'barbar'
</PRE>

<P></P>
<A NAME="IDX1189"></A>
<DT><CODE>RTRIM(str)</CODE>
<DD>
返回移除了尾部的空格字符后的 <CODE>str</CODE>:


<PRE>
mysql&#62; SELECT RTRIM('barbar   ');
        -&#62; 'barbar'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1190"></A>
<DT><CODE>TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)</CODE>
<DD>
移除字符串 <CODE>str</CODE> 中所有的 <CODE>remstr</CODE> 前缀或后缀,然后将其返回。如果没有任何 <CODE>BOTH</CODE>、<CODE>LEADING</CODE> 或 <CODE>TRAILING</CODE> 修饰符被给出,<CODE>BOTH</CODE> 被假定。如果 <CODE>remstr</CODE> 没有被指定,空格将被移除:

<PRE>
mysql&#62; SELECT TRIM('  bar   ');
        -&#62; 'bar'
mysql&#62; SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
        -&#62; 'barxxx'
mysql&#62; SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
        -&#62; 'bar'
mysql&#62; SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
        -&#62; 'barx'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1191"></A>
<DT><CODE>SOUNDEX(str)</CODE>
<DD>
返回 <CODE>str</CODE> 的近音字。两个发音差不多的字符串应该有同样的近音字。一个标准的近音字为 4 个字符长,但是函数 <CODE>SOUNDEX()</CODE> 却返回一个任意长的字符串。你可以在结果上使用 <CODE>SUBSTRING()</CODE> 标准的近音字。提供的字符中所有的非数字字母的字符均被忽略。所有在 A-Z 范围之外的国际 alpha 字符被视为元音:

<PRE>
mysql&#62; SELECT SOUNDEX('Hello');
        -&#62; 'H400'
mysql&#62; SELECT SOUNDEX('Quadratically');
        -&#62; 'Q36324'
</PRE>

<P></P>

<A NAME="IDX1192"></A>
<DT><CODE>SPACE(N)</CODE>
<DD>
返回有 <CODE>N</CODE> 空格字符组成的字符串:

<PRE>
mysql&#62; SELECT SPACE(6);
        -&#62; '      '
</PRE>

<P></P>

<A NAME="IDX1193"></A>
<DT><CODE>REPLACE(str,from_str,to_str)</CODE>
<DD>
在字符串 <CODE>str</CODE> 中所有出现的字符串 <CODE>from_str</CODE> 均被 <CODE>to_str</CODE>替换,然后返回这个字符串:

<PRE>
mysql&#62; SELECT REPLACE('www.mysql.com', 'w', 'Ww');
        -&#62; 'WwWwWw.mysql.com'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1194"></A>
<DT><CODE>REPEAT(str,count)</CODE>
<DD>
返回一个由重复了 <CODE>count</CODE> 次的字符串 <CODE>str</CODE> 组成的字符串。如果 <CODE>count &#60;= 0</CODE>,返回一个空字符串。如果 <CODE>str</CODE> 或 <CODE>count</CODE> 是 <CODE>NULL</CODE>,返回值也为 <CODE>NULL</CODE>:

<PRE>
mysql&#62; SELECT REPEAT('MySQL', 3);
        -&#62; 'MySQLMySQLMySQL'
</PRE>

<P></P>

<A NAME="IDX1195"></A>
<DT><CODE>REVERSE(str)</CODE>
<DD>
以颠倒的字符顺序返回字符串 <CODE>str</CODE>:
<PRE>
mysql&#62; SELECT REVERSE('abc');
        -&#62; 'cba'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1196"></A>
<DT><CODE>INSERT(str,pos,len,newstr)</CODE>
<DD>
在字符串 <CODE>str</CODE> 中,将从 <CODE>pos</CODE> 位置开始,<CODE>len</CODE> 个字符长的子串替换为字符串 <CODE>newstr</CODE> ,然后将结果返回:


<PRE>
mysql&#62; SELECT INSERT('Quadratic', 3, 4, 'What');
        -&#62; 'QuWhattic'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1197"></A>
<DT><CODE>ELT(N,str1,str2,str3,...)</CODE>
<DD>
如果 <CODE>N</CODE> = <CODE>1</CODE>,返回 <CODE>str1</CODE>,如果<CODE>N</CODE> =
<CODE>2</CODE>,返回 <CODE>str2</CODE>,等等。如果 <CODE>N</CODE> 小于 <CODE>1</CODE> 或大于参数的数量,返回 <CODE>NULL</CODE>。<CODE>ELT()</CODE> <CODE>FIELD()</CODE> 反运算:

<PRE>
mysql&#62; SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
        -&#62; 'ej'
mysql&#62; SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
        -&#62; 'foo'
</PRE>

<P></P>

<A NAME="IDX1198"></A>
<DT><CODE>FIELD(str,str1,str2,str3,...)</CODE>
<DD>
返回 <CODE>str</CODE> 在列表 <CODE>str1</CODE>, <CODE>str2</CODE>, <CODE>str3</CODE>, <CODE>...</CODE> 中的索引。如果 <CODE>str</CODE> 没有发现,返回 <CODE>0</CODE>。<CODE>FIELD()</CODE> 是 <CODE>ELT()</CODE> 的反运算:

<PRE>
mysql&#62; SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -&#62; 2
mysql&#62; SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -&#62; 0
</PRE>

<P></P>

<A NAME="IDX1199"></A>
<DT><CODE>FIND_IN_SET(str,strlist)</CODE>
  <DD> 如果字符串 <CODE>str</CODE> 在由 <CODE>N</CODE> 个子串组成的列表 <CODE>strlist</CODE> 中,返回一个 
    <CODE>1</CODE> 到 <CODE>N</CODE> 的值。一个字符串列表是由通过字符 <SAMP>“,”</SAMP> 分隔的多个子串组成。如果第一个参数是一个常数字符串,并且第二个参数是一个 
    <CODE>SET</CODE> 列类型,<CODE>FIND_IN_SET()</CODE> 函数将被优化为使用位运算!如果 <CODE>str</CODE> 
    在不 <CODE>strlist</CODE> 中或者如果 <CODE>strlist</CODE> 是一个空串,返回值为 <CODE>0</CODE>。如果任何一个参数为 
    <CODE>NULL</CODE>,返回值也是 <CODE>NULL</CODE>。如果第一个参数包含一个 <SAMP>“,”</SAMP>,这个函数将完全不能工作: 
    <PRE>
mysql&#62; SELECT FIND_IN_SET('b','a,b,c,d');
        -&#62; 2
</PRE>

<P></P>

<A NAME="IDX1200"></A>
<DT><CODE>MAKE_SET(bits,str1,str2,...)</CODE>
<DD>
返回一个集合 (包含由字符 <SAMP>“,”</SAMP> 分隔的多个子串组成的一个字符串),它由在 <CODE>bits</CODE> 集合中有相应的比特位的字符串组成。<CODE>str1</CODE> 对应于比特位 0,<CODE>str2</CODE> 对应比特位 1,等等。在 <CODE>str1</CODE>, <CODE>str2</CODE>, <CODE>...</CODE> 中的 <CODE>NULL</CODE> 串不允许被添加到结果中:

<PRE>
mysql&#62; SELECT MAKE_SET(1,'a','b','c');
        -&#62; 'a'
mysql&#62; SELECT MAKE_SET(1 | 4,'hello','nice','world');
        -&#62; 'hello,world'
mysql&#62; SELECT MAKE_SET(0,'a','b','c');
        -&#62; ''
</PRE>

<P></P>

<A NAME="IDX1201"></A>
<DT><CODE>EXPORT_SET(bits,on,off,[separator,[number_of_bits]])</CODE>
<DD>
返回一个字符串,对于在 'bits' 中的每个比特字位,你将得到一个 'on' 字符,而如果比特字位是一个清零比特位(reset bit)你将得到一个 'off' 字符串。每个字符串均被“分隔符”(缺省为“,”)分隔,并且只有 'number_of_bits'(缺省为 64) 个 'bits' 被使用:


<PRE>
mysql&#62; SELECT EXPORT_SET(5,'Y','N',',',4)
        -&#62; Y,N,Y,N
</PRE>


<tt>示例(译者注):</tt>
<PRE>
mysql&#62; select EXPORT_SET(1,'1','0','',5);
        -&#62; 10000 
# 最左边第一位为 2 的 0 次幂

mysql&#62; select EXPORT_SET(2,'1','0','',5);
        -&#62; 01000
# 最左边第一位为 2 的 0 次幂,第二位为 2 的 1 次幂        

mysql&#62; select EXPORT_SET(4,'1','0','',5);
        -&#62; 00100
# 最左边第一位为 2 的 0 次幂,第二位为 2 的 1 次幂,第三位为 2 的 2 次幂  

mysql&#62; select EXPORT_SET(15,'1','0','',5);
        -&#62; 11110
# 最左边第一位为 2 的 1 次幂,第四位为 2 的 3 次幂  

mysql&#62; select EXPORT_SET(16,'1','0','',5);
        -&#62; 00001
# 最左边第一位为 2 的 1 次幂,第五位为 2 的 4 次幂 


# 以上结果在 MySQL 4.0.12 中测试通过
</PRE>
<tt> 示例结束(译者注) </tt>
<P></P>

<A NAME="IDX1202"></A>
<A NAME="IDX1203"></A>
<DT><CODE>LCASE(str)</CODE>
<DD>
<DT><CODE>LOWER(str)</CODE>
<DD>
依照当前字符集设置映射(缺省为 ISO-8859-1 Latin1),将字符串 <CODE>str</CODE> 中的所有字符改变为小写,然后返回该值:

<PRE>
mysql&#62; SELECT LCASE('QUADRATICALLY');
        -&#62; 'quadratically'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1204"></A>
<A NAME="IDX1205"></A>
<DT><CODE>UCASE(str)</CODE>
<DD>
<DT><CODE>UPPER(str)</CODE>
<DD>
依照当前字符集设置映射(缺省为 ISO-8859-1 Latin1),将字符串 <CODE>str</CODE> 中的所有字符改变为大写,然后返回该值:

<PRE>
mysql&#62; SELECT UCASE('Hej');
        -&#62; 'HEJ'
</PRE>

这个函数是多字节安全的。

<P></P>

<A NAME="IDX1206"></A>
<A NAME="IDX1207"></A>
<DT><CODE>LOAD_FILE(file_name)</CODE>
<DD>
读入文件,并将文件内容作为一个字符串返回。这个文件必须在服务器上,必须指定文件完整的路径名,并且你必须有 <CODE>FILE</CODE> 权限。文件必须完全可读,并且小于 <CODE>max_allowed_packet</CODE>。

如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回 <CODE>NULL</CODE>:

<PRE>
mysql&#62; UPDATE tbl_name
           SET blob_column=LOAD_FILE("/tmp/picture")
           WHERE id=1;
</PRE>

如果你没有使用 MySQL  3.23,你不得不在你的应用程序中读取文件,以文件的信息创建一个 <CODE>INSERT</CODE> 语句,来更新数据库。如果你使用 MySQL++ 库,下面有一个示例,详细请查看 <a HREF="http://www.mysql.com/documentation/mysql++/mysql++-examples.html" target="_blank">http://www.mysql.com/documentation/mysql++/mysql++-examples.html</a>。

<P></P>

<A NAME="IDX1208"></A>
<DT><CODE>QUOTE(str)</CODE>
<DD>
引用一个字符串,并返回一个结果,该结果可作为一个适当转义过的数据值在一个 SQL 语句中使用。字符串被单引号包围着返回,并且在该字符串中每个单引号(<SAMP>“'”</SAMP>)、反斜线符号(<SAMP>“\”</SAMP>)、ASCII NUL 和 Control-Z 出现的地方,在该字符之前均被加上了一个反斜线。如果参数是 <CODE>NULL</CODE>,那么结果值是一个没有单引号包围的单词 “NULL”。

<CODE>QUOTE</CODE> 函数在 MySQL  4.0.3 中被加入。

<PRE>
mysql&#62; SELECT QUOTE("Don't");
        -&#62; 'Don\'t!'
mysql&#62; SELECT QUOTE(NULL);
        -&#62; NULL
</PRE>

</DL>



<H4><A NAME="String_comparison_functions"></A>6.3.2.1  字符串比较函数</H4>

<P>
<A NAME="IDX1209"></A>
<A NAME="IDX1210"></A>

</P>
<P>
在必要的时候,MySQL 会自动地将数字转换到字符串,反之亦然:
</P>

<PRE>
mysql&#62; SELECT 1+"1";
        -&#62; 2
mysql&#62; SELECT CONCAT(2,' test');
        -&#62; '2 test'
</PRE>

<P>
如果你希望明确地将一个数字转换为字符串,将它参数传递到 <CODE>CONCAT()</CODE> 中。
</P>

<P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -