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

Разлика между BINARY(16) и CHAR(32) при съхраняване на MD5 в база данни

В момента губите половината от контролната сума, когато използвате BINARY(16) . Когато съхранявате MD5 контролна сума в BINARY(16) трябва да го съхранявате като двоични данни, не кодирани в шестнадесетичен. Това е:

INSERT INTO test (md5_binary) VALUES(UNHEX(md5("one!")));

Можете да използвате функцията HEX, за да го кодирате отново в шестнадесетичен, ако искате да го сравните с друга контролна сума:

SELECT HEX(md5_binary) FROM test;

Предимството от използването на BINARY за съхраняване на контролната сума вместо шестнадесетичен текст е, че е необходима половината от паметта.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bind е NULL или NULL, когато използвате PHP PDO и MySql

  2. Игнорирайте дублиращи се записи и записвайте успешни такива в DbContext.SaveChanges() в EF Core

  3. SQL SERVER – Трик – Изпълняване на SSMS с различен акаунт в Windows

  4. Какъв е най-добрият начин да приложите корекция на печатна грешка в търсене в php/mysql?

  5. Операцията не може да бъде завършена, тъй като DbContext е изхвърлен в Mqsql и Entity Framework