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

単一のスペースを文字列で比較する方法

    BINARY 比較 完全に一致させるには、2つの文字列のうちの1つが必要です

    通常の状況では、末尾の空白は比較では考慮されませんが、BINARY オペレーターはそれを強制します:

    mysql> SELECT BINARY '   ' = ' ';
    +--------------------+
    | BINARY '   ' = ' ' |
    +--------------------+
    |                  0 |
    +--------------------+
    

    ちなみに、末尾の空白の問題の影響を受けるのは空白だけの比較ではありません:

    mysql> SELECT 'abc   ' = 'abc';
    +------------------+
    | 'abc   ' = 'abc' |
    +------------------+
    |                1 |
    +------------------+
    

    ...しかし...

    mysql> SELECT BINARY 'abc   ' = 'abc';
    +-------------------------+
    | BINARY 'abc   ' = 'abc' |
    +-------------------------+
    |                       0 |
    +-------------------------+
    

    ...さらに紛らわしいことに、先頭の空白は 重要:

    mysql> SELECT ' abc   ' = 'abc';
    +-------------------+
    | ' abc   ' = 'abc' |
    +-------------------+
    |                 0 |
    +-------------------+
    

    索引付けについて:

    BINARY 文字列でインデックスが使用されないようにします。ただし、ドキュメントに関するメモ インデックスが BINARYの場合に使用されます 演算子は、次のように比較の文字列リテラル側に適用されます。

    SELECT * FROM `tbl` WHERE `col` = BINARY 'string   '
    


    1. PostgreSQL接続プーリング:パート3 – Pgpool-II

    2. Windowsサブシステムはmysqlサーバーをインストールします

    3. リレーショナルinnoDBを使用した再帰的なMySQLクエリ

    4. PostgreSQLでdatabase_nameコマンドを使用する