Hi,
Mit beispielsweise X'4996ba' lässt sich ein HEX-Wert notieren und mit HEX(spalte) wieder ausgeben. Das klappt mit jeder Spalte, die 3 Byte speichern kann, also CHAR(3), BINARY(3) und VARCHAR(3) und UNSIGNED MEDIUMINT.
Wobei UNSIGNED MEDIUMINT mir immer noch am geeignetsten erscheint.
Mit HEX() geben zwar, wie du schon sagst, alle das gewünschte zurück - aber wenn ich mir die Tabelle bspw. über phpMyAdmin anschaue, dann sehe ich bei den drei erstgenannten nur Zeichensalat, und bei letzterem wenigstens noch einen Zahlenwert, wenn auch Dezimal an der Stelle.
Und dieser Zeichensalat kann dann auch bspw. den Export „schwierig” machen; pma liefert mir für meine Tabelle
CREATE TABLE `hextest` (
`h1` char(3) character set ascii NOT NULL,
`h2` varchar(3) character set ascii NOT NULL,
`h3` binary(3) NOT NULL,
`h4` mediumint(9) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Daten für Tabelle `hextest`
--
INSERT INTO `hextest` (`h1`, `h2`, `h3`, `h4`) VALUES
('I??', 'I??', 'I��', 4822714);
Dieses INSERT-Statement ist prädestiniert dafür, anschliessend Probleme zu machen.
MfG ChrisB
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]