sql >> Database >  >> RDS >> Mysql

verschil tussen UNHEX en X (MySQL)

UNHEX() is een functie , daarom kun je iets doen als

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

X , aan de andere kant, is de syntaxis voor een hexadecimaal letterlijk . U kunt dit niet doen:

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

Dit verklaart waarom je altijd betere prestaties krijgt met X :u gebruikt een taalconstructie in plaats van een functieaanroep. X hoeft een variabele niet te evalueren, omdat deze een letterlijke tekenreeks verwacht.



  1. Aantal MySQL-verbindingspools

  2. Dynamische SQL-resultaten in tijdelijke tabel in SQL Stored-procedure

  3. hoe de kolommen te verdelen in het resultaat van de query in de Oracle-database

  4. Veilig MySQL-wachtwoord op shared hosting