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

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

本文简介:选择自 shuixin13 的 blog

mysql 4.1.0 中文参考手册 --- 犬犬(心帆)翻译

mysql reference manual for version 4.1.0-alpha.


6.3 用于 selectwhere 子句的函数

一个 sql 语句中的 select_expressionwhere_definition 可由任何使用了下面所描述函数的表达式组成。

包含 null 的表达式总是得出一个 null 值结果,除非表达式中的操作和函数在文档中有另外的说明。

注意:在一个函数名和跟随它的括号之间必须不存在空格。这有助于 mysql 语法分析程序区分函数调用和对恰巧与函数同名表或列的引用。然而,参数左右两边的空格却是允许的。

你可以强制 mysql 接受函数名后存在空格的形式,这需要通过以 --ansi 选项启动 mysqld,或在 mysql_connect() 中使用 client_ignore_space,但是,在这种情况下,所有的函数名均将成为保留字。查看章节 1.8.2 以 ansi 模式运行 mysql.

为了简洁,从 mysql 程序输出的例子以缩写的形式显示。因此:

mysql> select mod(29,9);
1 rows in set (0.00 sec)
+-----------+
| mod(29,9) |
+-----------+
|         2 |
+-----------+

将被显示为这样:

mysql> select mod(29,9);
        -> 2

6.3.1 无类型的特殊运算符和函数

6.3.1.1 圆括号

( ... )

括号,使用它来强制一个表达式的计算顺序。

mysql> select 1+2*3;
        -> 7
mysql> select (1+2)*3;
        -> 9

6.3.1.2 比较运算符

比较运算符的结果是 1 (true)、0 (false) 或 null。这些函数可工作于数字和字符串上。根据需要,字符串将会自动地被转换到数字,以及数字被转换成字符串(比如在 perl 中)。

mysql 使用下列规则进行比较:

  • 如果一个或两个参数是 null,比较的结果是 null,除了 <=> 运算符。
  • 如果在一个比较操作中两个参数均是字符串,他们将作为字符串被比较。
  • 如果两个参数均是整数,他们作为整数被比较。
  • 十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。
  • 如果参数之一是一个 timestampdatetime 列,而另一参数是一个常数,在比较执行之前,这个常数被转换为一个时间戳。这样做是为了对 odbc 更友好。
  • 在所有其它情况下,参数作为浮点(real)数字被比较。

缺省地,字符串使用当前字符集以忽略字母大小写的方式进行比较(缺省的字符集为 iso-8859-1 latin1,它对英语处理得很出色)。

下面的例子演示了对于比较操作字符串到数字的转换:

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

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

go top