Einfügen von Hex-Wert mysql
-
29-09-2019 - |
Frage
Ich habe eine SQL-Datenbank unter Verwendung von Java erstellt, bin ich ein Noob, wenn es um SQL kommt aber haben sie so konfiguriert und eingerichtet, ich habe eine Tabelle erstellt, die zwei Spalten aufweist, wobei die erste eine große ganze Zahl mit einem Hex welche Schritten, die Anzahl in die zweite habe ich versucht, es als char, varchar und binär zu definieren, aber im noch nicht die gewünschte Funktion bekommen, sagen, dass ich versuchen und zu speichern 0a die char-Spalte i einen Fehler, den beigefügten i 0x an den Anfang ein, es zu speichern scheint, aber wenn ich den Inhalt auszudrucken es leer ist oder in einigen Fällen i-Charaktere wie ‚/‘ oder ‚?‘, habe ich auch versucht, sQL-Explorer verwenden und es gibt mir das gleiche Ergebnis sehen sie die Tabelle,
Mein Problem ist, ich brauche einen acht Zeichen Hex-String wie eb8d4ee6 zu speichern.
Könnte jemand bitte mir sagen, wie kann dies geschehen?
Lösung
Ist hier eine große Blog-Post Ich bezeichne mich immer von dem richtigen Umgang mit Hex-Werten erinnern und Binärfelder und Implikationen einiger Performance legt.
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/
Andere Tipps
Siehe http://dev.mysql.com/doc /refman/5.5/en/hexadecimal-literals.html
unterstützt MySQL Hexadezimalwerte, geschrieben mit X'val 'x'val' oder 0xval Format, in dem val hexadezimal enthält Ziffern (0..9, A..F). Schreibweise des Stellen keine Rolle spielt. für Werte mit X'val 'oder x'val' Format geschrieben, val muss eine gerade Anzahl von enthalten Ziffern. Für Werte geschrieben 0xval mit Syntax, die eine ungerade Werte enthalten, Anzahl der Stellen werden so behandelt, als mit ein extra führenden 0. Zum Beispiel 0x0a und 0xaaa als 0x0a interpretiert und 0x0aaa.
In numerischen Kontexten, hexadezimal Werte wie ganze Zahlen handeln (64-bit Präzision). In String Kontexten, sie wirken wie binäre Strings, wobei jeder Paar von Hexadezimalziffern wird in ein umgewandeltes Charakter:
Sie sollten wahrscheinlich die Hex-Nummer in einer Integer-Spalte speichern. Sie können dann zu hex konvertieren zurück, wenn mit der Auswahl HEX()
Funktion.
z. B.
INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);