Analitycs

понедельник, 3 октября 2011 г.

Как просмотреть битовые поля(bit fields) в MySQL?

Когда вы используете в таблицах MySQL битовые поля,  то стандартный консольный клиент их не показывает в результатах запросов.

mysql> select deleted from shopping_cart where id > 1000 and deleted = 0 limit 3;
+---------+
| deleted |
+---------+
|         | 
|         | 
|         | 
+---------+
3 rows in set (0.00 sec)

mysql> select deleted from shopping_cart where id > 1000 and deleted = 1 limit 3;
+---------+
| deleted |
+---------+
|        | 
|        | 
|        | 
+---------+
3 rows in set (0.00 sec)

Внимательный человек заметит, что у результатов команды отличается отступ.

Для того чтоб значение поля было показано явно, нужно в запросе либо добавить +0 к имени поля, либо вызвать функцию bin, как показано ниже.

mysql> select deleted+0 from shopping_cart where id > 1000 and deleted = 0 limit 3;
+-----------+
| deleted+0 |
+-----------+
|         0 | 
|         0 | 
|         0 | 
+-----------+
3 rows in set (0.36 sec)

mysql> select deleted+0 from shopping_cart where id > 1000 and deleted = 1 limit 3;
+-----------+
| deleted+0 |
+-----------+
|         1 | 
|         1 | 
|         1 | 
+-----------+
3 rows in set (0.01 sec)

mysql> select bin(deleted) from shopping_cart where id > 1000 and deleted = 1 limit 3;
+--------------+
| bin(deleted) |
+--------------+
|            1 | 
|            1 | 
|            1 | 
+--------------+
3 rows in set (0.01 sec)

mysql> select id,bin(deleted) from shopping_cart where id > 2000 and deleted = 0 limit 3;
+------+--------------+
| id   | bin(deleted) |
+------+--------------+
| 2001 | 0            | 
| 2002 | 0            | 
| 2003 | 0            | 
+------+--------------+
3 rows in set (0.00 sec)

Ну очень вольный перевод вот этого мана

Комментариев нет:

Отправить комментарий