sql >> Databáze >  >> RDS >> Mysql

rozdíl mezi UNHEX a X (MySQL)

UNHEX() je funkce , proto můžete udělat něco jako

SET @var = '41';
SELECT UNHEX(@var);
SELECT UNHEX(hex_column) FROM my_table;

X , na druhé straně je syntaxe hexadecimálního litterálu . Nemůžete to udělat:

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

To vysvětluje, proč s X vždy dosáhnete lepšího výkonu :místo volání funkce používáte jazykovou konstrukci. X nepotřebuje vyhodnocovat proměnnou, protože očekává doslovný řetězec.



  1. Časová hodnota MySQL v dotazu 838:59:59?

  2. ukládání dat formuláře do databáze

  3. Jak předám návratový kód ze skriptu Oracle zpět do dávkového skriptu WINDOWS, který jej vyvolal?

  4. COLLATION() Funkce v Oracle