UNHEX()
er en funktion
, derfor kan du gøre noget som
SET @var = '41';
SELECT UNHEX(@var);
SELECT UNHEX(hex_column) FROM my_table;
X
, på den anden side er syntaksen for en hexadecimal bogstav
. Du kan ikke gøre dette:
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
Dette forklarer, hvorfor du altid får bedre ydeevne med X
:du bruger en sprogkonstruktion i stedet for et funktionskald. X
behøver ikke at evaluere en variabel, da den forventer en bogstavstreng.