sql >> データベース >  >> RDS >> MariaDB

MariaDBで連結演算子としてパイプ(||)を有効にするための7つのオプション

    デフォルトでは、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

    1. SQLServerでの共通テーブル式の紹介

    2. オンラインアップグレードの進捗状況

    3. SQLServerのSTATISTICSIOとは何ですか?

    4. 空またはnull値をチェックするための最良の方法