Mysql
 sql >> база данни >  >> RDS >> Mysql

разлика между UNHEX и X (MySQL)

UNHEX() е функция , следователно можете да направите нещо като

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

X , от друга страна, е синтаксисът за шестнадесетичен литерал . Не можете да направите това:

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

Това обяснява защо винаги получавате по-добра производителност с X :използвате езикова конструкция вместо извикване на функция. X не е необходимо да оценява променлива, тъй като очаква буквен низ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Текстово търсене в множество полета MySQL

  2. Извежда грешка, предотвратяваща актуализация на таблицата в MySQL тригер

  3. mysql Compress() с sqlalchemy

  4. Първа нормална форма и собствени и фамилни имена

  5. SQLAlchemy чрез Paramiko SSH