【MySQL】sql_modeの変更
MySQLにはsql_modeっていう環境変数があってこれを設定してあげると他のベンダーのDBみたいな動作してくれる
例えば未設定時には
mysql> SHOW VARIABLES LIKE 'sql_mode'\G
Variable_name: sql_mode
Value:
1 row in set (0.00 sec)mysql> SELECT ('a' || 'b' || 'c') as marge FROM DUAL;
marge |
0 |
という動作をするんだけど
ってするとさっきのSQLが
mysql> set @@sql_mode='ORACLE';
Query OK, 0 rows affected (0.00 sec)mysql> SHOW VARIABLES LIKE 'sql_mode'\G
Variable_name: sql_mode
Value: PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
1 row in set (0.00 sec)
mysql> SELECT ('a' || 'b' || 'c') as marge FROM DUAL;
marge |
abc |
1 row in set (0.00 secってなる
便利ですね〜
多分いろいろ挙動が変わっていると思うので調査