UNHEX()
もちろんのバイナリであるため、あなたが
SET @var = '41';
SELECT UNHEX(@var);
SELECT UNHEX(hex_column) FROM my_table;
X
ような何かを行うことができ、一方、シンタックスで、a functionですhexadecimal litteral。あなたはこれを行うことはできません:あなたは言語構造の代わりに、関数呼び出しを使用している:あなたは常にX
とのより良いパフォーマンスを得る理由
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
は、変数を評価する必要はありません。これは、リテラル文字列を期待するためです。
正解!ありがとう.. – nawfal