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

UNHEXとXの違い(MySQL)

    UNHEX() 関数 です 、したがって、

    のようなことを行うことができます
    SET @var = '41';
    SELECT UNHEX(@var);
    SELECT UNHEX(hex_column) FROM my_table;
    

    X 一方、は16進数リテラルの構文です。 。これはできません:

    SET @var = '41';
    SELECT [email protected]; -- error (string litteral expected)
    SELECT X'@var'; -- error (`@` is not a hexadecimal digit)
    SELECT X(@var); -- returns NULL, not too sure about the reason... [edit: but this is probably why you are inserting NULL values]
    SELECT X(hex_column) FROM my_table; -- returns NULL as well
    

    これは、Xで常にパフォーマンスが向上する理由を説明しています :関数呼び出しの代わりに言語構造を使用しています。 X リテラル文字列を想定しているため、変数を評価する必要はありません。



    1. MySQL-caseステートメントを最適化する

    2. ON句のMySQL不明列

    3. Sqoopを使用してMySQLからHiveにインポートする

    4. MariaDBでのCONCAT()のしくみ