sql >> Database teknologi >  >> RDS >> Mysql

forskel mellem UNHEX og X (MySQL)

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.



  1. SQL:tæl antallet af forskellige værdier i hver kolonne

  2. MySQL:Sådan finder du blade i en bestemt node

  3. MySQL SELECT Betinget CONCAT

  4. PostgreSQL - gendannelse af en tabel fra database dump