Когда вы используете в таблицах MySQL битовые поля, то стандартный консольный клиент их не показывает в результатах запросов.
mysql> select deleted from shopping_cart where id > 1000 and deleted = 0 limit 3;
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)
Ну очень вольный перевод вот этого мана
Комментариев нет:
Отправить комментарий