MySQL 4.1.0 中文参考手册 --- 6.3 用于 SELECT 和 WHERE 子句的函数 (1)[9]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 shuixin13 的 blog

mysql> select 'david!' like 'david\_';
        -> 0
mysql> select 'david_' like 'david\_';
        -> 1
为了指定一个不同的转义字符,可以使用 escape 子句:
mysql> select 'david_' like 'david|_' escape '|';
        -> 1
下面两个语句表明,字符串比较是忽略大小写的,除非任一操作数是一个二进制字符串:
mysql> select 'abc' like 'abc';
        -> 1
mysql> select 'abc' like binary 'abc';
        -> 0
like 允许用在一个数字表达式上。(这是 mysql 对 ansi sql like 的扩展。)
mysql> select 10 like '1%';
        -> 1
注意:因为 mysql 在字符串中使用的是 c 的转义句法(例如 “\n”),所以在 like 字符串中使用的任何一个 “\” 必须被双写。例如,为了查找 “\n”,必须以 “\\n” 形式指定它。为了查找 “\”,必须指定它为 “\\\\” (反斜线被语法分析器剥离一次,另一次在模式匹配时完成,留下一条单独的反斜线被匹配)。

expr not like pat [escape 'escape-char']
相同于 not (expr like pat [escape 'escape-char'])

expr sounds like expr
等同于 soundex(expr)=soundex(expr) (适用于 mysql 4.1 或更新的版本)。

expr regexp pat
expr rlike pat
依照模式 pat 对字符串表达式 expr 执行一个模式比较。模式可以是一个扩展的正则表达式。查看章节 g mysql 正则表达式。returns 如果表达式 expr 匹配 pat,返回 1,否则返回 0rlikeregexp 的同义词,它提供了与 msql 的兼容。注意:mysql 在字符串中使用的是 c 的转义句法(例如 “\n”),所以在 regexp 字符串中使用的任何一个 “\” 必须被双写。在 mysql 3.23.4 中,regexp 对于正常的(不是二进制)字符串是忽略大小写的:
mysql> select 'monty!' regexp 'm%y%%';
        -> 0
mysql> select 'monty!' regexp '.*';
        -> 1
mysql> select 'new*\n*line' regexp 'new\\*.\\*line';
        -> 1
mysql> select "a" regexp "a", "a" regexp binary "a";
        -> 1  0
mysql> select "a" regexp "^[a-d]";
        -> 1
当决定一个字符的类型时,regexprlike 使用当前使用的字符集(缺省为 iso-8859-1 latin1)。

expr not regexp pat
expr not rlike pat
等同于 not (expr regexp pat)

strcmp(expr1,expr2)
如果字符串是相同,strcmp() 返回 0,如果第一个参数根据当前排序次序小于第二个参数,返回 -1,否则返回 1
mysql> select strcmp('text', 'text2');
        -> -1
mysql> select strcmp('text2', 'text');
        -> 1
mysql> select strcmp('text', 'text');
        -> 0

match (col1,col2,...) against (expr)
match (col1,col2,...) against (expr in boolean mode)
match ... against() 用于全文搜索,返回在列 (col1,col2,...) 和查询 expr 之间文本的相关相似的尺度。相关性是一个正的浮点型数字。零相关性意味着不相似。match ... against() 可用于 mysql 3.23.23 或更新的版本中。in boolean mode 扩展在 mysql 4.0.1 中被新加入。详细描述和使用范例,请查看 6.8 mysql 全文搜索

6.3.2.2 字母大小写敏感性

binary
binary 操作符将跟在它后面的字符串强制作为一个二进制字符串。这可以很容易地强制一个列的比较以字母大小写敏感方式进行,即使该列没有定义为 binaryblob?
mysql> select "a" = "a";
        -> 1
mysql> select binary "a" = "a";
        -> 0
binary stringcast(string as binary) 的缩写。查看章节 6.3.5 cast 函数binary 在 mysql 3.23.0 中被加入。 注意,当将一个索引列强制为 binary 时,在某些语境中,mysql 将不能有效地使用索引。

如果希望对一个 blob 进行忽略字母大小的比较时,你通常可以在比较前将它转换到大写:

select 'a' like upper(blob_col) from table_name;

我们计划不久推出在不同字符集间的转化,以使字符串比较有更好的伸缩性。

6.3.3 数字函数

6.3.3.1 算术运算

常用的算术操作符均是可用的。注意,如果两个参数均是整型,`-', `+'`*'bigint (64 位)精度运算并返回结果!如果一个参数是一个无符号的整数,另一个参数也是一个整数,结果也将是一个无符号整数。查看章节 6.3.5 cast 函数

本文关键:MySQL 4.1.0 中文
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top