sql >> Databáze >  >> RDS >> Mysql

Rozdíl mezi BINARY(16) a CHAR(32) při ukládání MD5 do databáze

V současné době ztrácíte polovinu kontrolního součtu při použití BINARY(16) . Když uložíte kontrolní součet MD5 do BINARY(16) měli byste je uložit jako binární data, ne zakódované v šestnáctkové soustavě. To je:

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

Chcete-li jej porovnat s jiným kontrolním součtem, můžete jej znovu zakódovat do hexu pomocí funkce HEX:

SELECT HEX(md5_binary) FROM test;

Výhodou použití BINARY k uložení kontrolního součtu místo hexadecimálního textu je, že je potřeba polovina úložiště.




  1. Oracle:jak seskupit podle rozsahu?

  2. Jak změnit sloupec z NULL na NOT NULL

  3. Vyhledat položku - v databázi (bez zadání názvu sloupce/názvu tabulky)

  4. Neplatný formát XML – jak se tomu vyhnout