sql >> Databasteknik >  >> RDS >> Mysql

skillnad mellan UNHEX och X (MySQL)

UNHEX() är en funktion , därför kan du göra något som

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

X , å andra sidan, är syntaxen för en hexadecimal bokstav . Du kan inte göra detta:

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

Detta förklarar varför du alltid får bättre prestanda med X :du använder en språkkonstruktion istället för ett funktionsanrop. X behöver inte utvärdera en variabel, eftersom den förväntar sig en bokstavssträng.



  1. Hur hanterar jag nollvärden i NOT IN och NOT LIKE-satser i Oracle?

  2. mysql_fetch_array hämtar inte alla rader

  3. php och mysql kopiera post från en tabell till en annan

  4. Transaktioner fungerar inte för min MySQL DB