Ne pouvez pas voir MySQL champ de BITS de la valeur lors de l'utilisation de SÉLECTIONNER
my_table
contient les enabled
champ qui est définie comme: enabled BIT NOT NULL DEFAULT 0
.
Ce tableau a plusieurs lignes avec des enabled = b'0'
, et de plusieurs lignes avec enabled = b'1'
.
Cependant, cette fois:
SELECT * from my_table WHERE enabled = b'0';
et ce:
SELECT * from my_table WHERE enabled = b'1';
montrer vide dans le enabled
colonne:
+----+---------+
| id | enabled |
+----+---------+
| 1 | |
| 2 | |
+----+---------+
Pourquoi est-ce? Comment pourrais-je voir la valeur de la enabled
champ?
$ mysql --version
mysql Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (x86_64) using readline 6.1
- Pourquoi êtes-vous à l'aide de
BIT
au lieu deBOOLEAN
? Aurez-vous besoin de stocker plus d'un drapeau dans cette colonne? - C'est bizarre. Je ne peux pas reproduire cela. Fonctionne ici
Vous devez vous connecter pour publier un commentaire.
La raison pour laquelle vous ne pouvez pas le voir dans le terminal est parce que peu de valeurs sont non caractères imprimables.
Permet d'insérer des valeurs suivantes:
Puis sélectionnez fichier:
D'abord, permet de voir notre
/tmp/my_table.txt
fichier en texte brut:puis dans hex:
Pour être en mesure de voir ces valeurs, vous pouvez simplement
CAST
dansSELECT
:Et qui produira la sortie suivante:
select * from my_table
?la façon la plus simple est
ORD
fonction:Une autre façon que vous pouvez faire c'est
https://dev.mysql.com/doc/refman/5.7/en/bit-field-literals.html
Vous pouvez également essayer de
SELECT enabled&1 from my_table
.