Mysql
 sql >> Baza danych >  >> RDS >> Mysql

różnica między UNHEX i X (MySQL)

UNHEX() jest funkcją , dlatego możesz zrobić coś takiego jak

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

X , z drugiej strony, jest składnią dla szesnastkowy literał . Nie możesz tego zrobić:

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 wyjaśnia, dlaczego zawsze uzyskujesz lepszą wydajność dzięki X :używasz konstrukcji językowej zamiast wywołania funkcji. X nie musi oceniać zmiennej, ponieważ oczekuje ciągu literowego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula WHERE, po której następuje JOIN

  2. Napraw Odmowa dostępu dla użytkownika 'root'@'localhost' dla phpMyAdmin

  3. Instrukcja VALUES w MySQL

  4. java.sql.SQLException:pole 'id' nie ma wartości domyślnej

  5. Ionic framework i php mysql