MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

第 12 章 関数と演算子

SQL ステートメントのいくつかのポイント (SELECT ステートメントの ORDER BY または HAVING 句、SELECTDELETE、または UPDATE ステートメントの WHERE 句、SET ステートメントなど) では、式を使用できます。 式は、リテラル値、カラム値、NULL、組み込み関数、ストアドファンクション、ユーザー定義関数、および演算子を使用して作成できます。 この章では、MySQL で式を記述できる SQL 関数および演算子について説明します。 ストアドファンクションおよびユーザー定義関数を作成する手順については、セクション25.2「ストアドルーチンの使用」およびAdding Functions to MySQLで説明されています。 各種の関数への参照をサーバーが解釈する方法を記述したルールについては、セクション9.2.5「関数名の構文解析と解決」を参照してください。

NULL を含む式では、その関数または演算子に関するドキュメントで明記されていないかぎり、常に NULL 値が生成されます。

注記

デフォルトでは、関数名とそれに続く丸括弧の間には空白を入れることはできません。 これは、MySQL パーサーが、関数呼び出しと、偶然に関数と同じ名前を持つテーブルまたはカラムへの参照を区別するのに役立ちます。 ただし、関数の引数の前後にスペースを入れることは許可されています。

最初に --sql-mode=IGNORE_SPACE オプションを付けると、関数名のあとの空白文字を受け入れるように MySQL サーバーに指示できます。 (セクション5.1.11「サーバー SQL モード」を参照してください。) 各クライアントプログラムで 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