Inserimento hex valore mysql
-
29-09-2019 - |
Domanda
Ho creato un database SQL utilizzando Java, io sono un noob quando si tratta di SQL, ma lo hanno installato e configurato, ho una tabella creata che ha due colonne, il primo essere un grande numero intero che incrementi, il secondo ho provato definisce come un char, varchar e binario, ma im ancora non ottenere la funzione desiderata, dire provo e conservare 0a un numero esadecimale in la colonna char ottengo un errore, ho aggiunto 0x alla iniziando una sembra negozio, ma quando stampo il contenuto è vuoto o in alcuni casi i caratteri risultano ad esempio '/' o '?', ho anche provato utilizzo di SQL esploratore e mi dà lo stesso risultato la visualizzazione della tabella,
Il mio problema è che ho bisogno di memorizzare una stringa esadecimale di otto caratteri, come eb8d4ee6.
Qualcuno potrebbe darmi dei consigli su come questo può essere fatto?
Soluzione
Ecco una grande post sul blog ho sempre riferisco a ricordare a me stesso di una corretta gestione dei valori esadecimali e campi binari, e delinea alcune implicazioni di prestazioni.
http://www.xaprb.com/blog/2009/02/12/5-ways-to-make-hexadecimal-identifiers-perform-better-on-mysql/
Altri suggerimenti
http://dev.mysql.com/doc /refman/5.5/en/hexadecimal-literals.html
MySQL supporta valori esadecimali, scritto utilizzando X'val 'x'val', o 0xval formato, dove val contiene esadecimale cifre (0..9, A..F). Lettercase della cifre non importa. per i valori scritto utilizzando il formato X'val 'x'val o', val deve contenere un numero pari di cifre. Per i valori scritti utilizzando 0xval sintassi, valori che contengono uno strano numero di cifre sono trattati come aventi un extra leader 0. Ad esempio, 0x0a e 0xAAA vengono interpretati come 0x0a e 0x0aaa.
In contesti numerici, esadecimale I valori si comportano come numeri interi (a 64 bit precisione). In contesti di stringa, che agire come stringhe binarie, dove ogni coppia di cifre esadecimali viene convertito in un carattere:
Probabilmente dovrebbe memorizzare il numero esadecimale in una colonna integer. È quindi possibile riconvertire esadecimale quando si seleziona utilizzando il HEX()
funzione.
per es.,
INSERT INTO MyTable (`MyIntegerColumn`) VALUES (0xeb8d4ee6);