第十二章函数和运算符

目录

可以在SQL语句中的多个点使用 table 达式,例如SELECT语句的ORDER BYHAVING子句,SELECTDELETEUPDATE语句的WHERE子句或SET语句。可以使用 Literals 值,列值,NULL,内置函数,存储函数,用户定义的函数和运算符来编写 table 达式。本章介绍了允许在 MySQL 中编写 table 达式的 SQL 函数和运算符。 第 23.2 节“使用存储的例程”第 28.4 节“向 MySQL 添加函数”中给出了编写存储函数和用户定义函数的指令。有关描述服务器如何解释对各种功能的引用的规则,请参见第 9.2.5 节“函数名称的解析和解析”

除非文档中针对特定函数或运算符另有说明,否则包含NULL的 table 达式始终会产生NULL值。

Note

默认情况下,函数名称和其后的括号之间必须没有空格。这有助于 MySQL 解析器区分函数调用和对与函数名称相同的 table 或列的引用。但是,函数参数周围可以有空格。

您可以通过使用--sql-mode=IGNORE_SPACE选项启动 MySQL 服务器,以使其接受函数名称后的空格。 (请参阅第 5.1.10 节“服务器 SQL 模式”。)各个 Client 端程序可以通过使用mysql_real_connect()CLIENT_IGNORE_SPACE选项来请求此行为。在任何一种情况下,所有函数名称都将成为保留字。

为了简洁起见,本章中的大多数示例都以缩写形式显示mysql程序的输出。而不是以这种格式显示示例:

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

改用这种格式:

mysql> SELECT MOD(29,9);
        -> 2