デフォルトでは、2つのパイプ文字(||
)は論理的なOR
として扱われます MariaDBの演算子。ただし、必要に応じてこの動作を変更できます。
sql_mode
を更新できます PIPES_AS_CONCAT
を含める オプション。この場合、2つのパイプが連結演算子として扱われます。
このオプションをsql_mode
に追加する方法はたくさんあります。 。明示的に追加できます。または、sql_mode
を設定できます 暗黙的に設定するオプションに。
以下のオプションを実行します。
PIPES_AS_CONCAT
を追加します 明示的に
既存のsql_mode
を台無しにしたくない場合 設定では、次のコードを実行できます:
SET sql_mode=(SELECT CONCAT(@@sql_mode,',PIPES_AS_CONCAT'));
これにより、PIPES_AS_CONCAT
が追加されます 他に何も削除せずに。 sql_mode = 'PIPES_AS_CONCAT'
を使用することもできます 、しかし私はすべての既存のオプションを失っていただろう。上記の手法を使用すると、既存のオプションが失われることはありません。
既存のsql_mode
を確認しましょう そのコードを実行した後の設定:
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
PIPES_AS_CONCAT
すでに存在する他のオプションと一緒に含まれています。
ANSI
これを行う別の方法は、sql_mode
を設定することです。 ANSI
へ :
SET sql_mode='ANSI';
ANSI
modeは、構文と動作を変更して、標準SQLにより厳密に準拠します。
これにより、既存の設定がすべて削除され、ANSI
に適用可能な設定のみが使用されることに注意してください。 オプション。
これを実証するために、私のsql_mode
をもう一度見てみましょう。 ANSI
に設定した後 :
SET sql_mode='ANSI';
SELECT @@sql_mode;
結果:
REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI
私のsql_mode
完全に変更されました。
DB2
同じ行に沿って、sql_mode
を設定できます さまざまなDBMSとより調和するように。
DB2規則を使用するように設定する方法は次のとおりです。
SET sql_mode='DB2';
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,DB2,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
これらは、DB2に対応するオプションです。
MaxDB
SET sql_mode='MAXDB';
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
SQL Server
MSSQL
を使用する SQL Serverの規則を使用するように設定するには:
SET sql_mode='MSSQL';
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MSSQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS
Oracle
SET sql_mode='ORACLE';
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ORACLE,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER,SIMULTANEOUS_ASSIGNMENT
SIMULTANEOUS_ASSIGNMENT
オプションは、MariaDB10.3以降を使用している場合にのみ追加されます。
PostgreSQL
SET sql_mode='POSTGRESQL';
SELECT @@sql_mode;
結果:
PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,POSTGRESQL,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS