tipos tipo telefono para insertar enum electronico datos dato correo mysql sql bit

insertar - tipo de dato para telefono en mysql



No se puede ver el valor de campo BIT de MySQL al usar SELECT (4)

Los valores de bit se devuelven como valores binarios. Para mostrarlos en forma imprimible, agregue 0 o use una función de conversión como BIN ().

https://dev.mysql.com/doc/refman/5.7/en/bit-field-literals.html

my_table contiene el campo enabled que se define como: enabled BIT NOT NULL DEFAULT 0 .

Esta tabla tiene varias filas con enabled = b''0'' , y varias filas con enabled = b''1'' .

Sin embargo, ambos esto:

SELECT * from my_table WHERE enabled = b''0'';

y esto:

SELECT * from my_table WHERE enabled = b''1'';

mostrar en blanco en la columna enabled :

+----+---------+ | id | enabled | +----+---------+ | 1 | | | 2 | | +----+---------+

¿Porqué es eso? ¿Cómo podría ver el valor del campo enabled ?

$ mysql --version mysql Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (x86_64) using readline 6.1


La razón por la cual no se puede ver en el terminal es porque los valores de los bits no son caracteres imprimibles.

Permite insertar los siguientes valores:

INSERT INTO `my_table` (`ID`, `enabled`) VALUES (1,b''1''),(2,b''0'');

Luego, selecciónalos para archivar:

mysql> SELECT * FROM my_table INTO OUTFILE ''/tmp/my_table.txt'' FIELDS TERMINATED BY '','' ENCLOSED BY ''"'' LINES TERMINATED BY ''/n'';

Primero, /tmp/my_table.txt nuestro archivo /tmp/my_table.txt como texto sin formato:

"1", ""
"2", ""

y luego en vista hexadecimal:

22 31 22 2C 22 01 22 0A 22 32 22 2C 22 00 22 0A

Para poder ver esos valores, simplemente puedes CAST en SELECT :

SELECT id, CAST(enabled AS UNSIGNED) AS enabled FROM my_table

Y eso producirá el siguiente resultado:

+----+---------+ | id | enabled | +----+---------+ | 1 | 1 | | 2 | 0 | +----+---------+ 2 rows in set (0.00 sec)


Otra forma de hacerlo es

SELECT enabled+0 from my_table


la forma más simple es la función ORD :

SELECT ORD(`enabled`) AS `enabled` FROM `my_table`