【MySQL】||(パイプ)を使ってみた結果


ここではMySQLで、||(パイプ)を使ってみた結果を紹介しています。

||(パイプ)を使ってみた結果

||(パイプ)というと、ORACLEデータベースでは文字列結合に使うことが出来ます。

例えば「SELECT ‘a’ || ‘b’ FROM dual;」とすると、’ab’という結果が返ってきます。

|| (パイプ)はMySQLの標準ではORに相当

実際にMySQLで試してみました。結果は文字列結合されませんでした。

mysql> SELECT 'a' || 'b';
+------------+
| 'a' || 'b' |
+------------+
|          0 |
+------------+
1 row in set, 2 warnings (0.00 sec)

どうやらMySQLの標準ではOR句に相当するようです。

MySQLの標準で文字列結合はCONCAT関数を使う

MySQLの標準設定で文字列結合を行う場合は、CONCAT関数を使います。

mysql> SELECT CONCAT('a','b');
+-----------------+
| CONCAT('a','b') |
+-----------------+
| ab              |
+-----------------+
1 row in set (0.00 sec)

sql_modeの変更で||(パイプ) で文字列結合も可能

次のようにsql_modeを変更することで、||(パイプ)で文字列結合することもできるようです。設定をmy.cnfへ書き込めば常に||(パイプ)で文字列結合することもできます。

mysql> SET sql_mode='PIPES_AS_CONCAT';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> SELECT 'a' || 'b';
+------------+
| 'a' || 'b' |
+------------+
| ab         |
+------------+
1 row in set (0.00 sec)