2008-11-14 8 views
2

Peut-on insérer une valeur hexadécimale dans MYSQL? Je veux aussi pouvoir le récupérer sous forme hexadécimale. Par exemple: INSERT INTO table (hexag) VALEURS (HEX (0x41));Insérer une valeur hexadécimale dans mysql

Et si je le fais, je veux mettre un « A » dans la table

+0

Je pense que votre colonne doit être une colonne entière. –

Répondre

4

Pour ce cas d'utilisation particulière, vous pouvez insérer la valeur hexadécimale directement et il sera interprété comme une chaîne, ou utiliser HEX() à l'entrée et UNHEX() pour délivrer en sortie

 
mysql> create table hexTable(pseudoHex varchar(50)); 
Query OK, 0 rows affected (0.01 sec) 

mysql> insert into hexTable values (0x41); 
Query OK, 1 row affected (0.00 sec) 

mysql> select * from hexTable; 
+-----------+ 
| pseudoHex | 
+-----------+ 
| A   | 
+-----------+ 
1 row in set (0.00 sec) 

mysql> select HEX(pseudoHex) from hexTable; 
+----------------+ 
| HEX(pseudoHex) | 
+----------------+ 
| 41    | 
+----------------+ 
1 row in set (0.00 sec) 

mysql> delete from hexTable; 
Query OK, 1 row affected (0.00 sec) 

mysql> insert into hexTable values (HEX('A')); 
Query OK, 1 row affected (0.00 sec) 

mysql> select UNHEX(pseudoHex) from hexTable; 
+------------------+ 
| UNHEX(pseudoHex) | 
+------------------+ 
| A    | 
+------------------+ 
1 row in set (0.00 sec) 

mysql> select * from hexTable; 
+-----------+ 
| pseudoHex | 
+-----------+ 
| 41  | 
+-----------+ 
1 row in set (0.00 sec) 

Voir theselinks.

+0

Lorsque je l'insère dans les valeurs hexadécimales (0x41); il insère littéralement "0x41", avez-vous dû faire quelque chose de spécial pour le convertir en 'A'? –

+0

Non, client de console standard 5.0.38. Comment essayez-vous cela? Version/client? –

Questions connexes