Я хочу иметь элемент управления, чтобы временно скрывать некоторые продукты на веб-сайте.Я думал, что легче внести изменения в базу данных, чем изменить sql и загрузить страницу снова.
Я добавил новый столбец с помощью:
ALTER TABLE product ADD hide BINARY NULL;
Он создалTINYINT (1) столбец.Если я сделаю некоторые продукты 1 скрытыми, а затем снова выставлю некоторые из них 0, у меня будет таблица со столбцом скрытия, например:
*hide*
NULL
0
1
Когда я сделаю запрос по:
SELECT * FROM product WHERE hide <> 1;
показывает только 0, но не NULL.Когда я изменил столбец на BIT, он превратился в BIT (1), тот же запрос приводит к тому же.
Логически, если что-то определено как 0 или 1, другого варианта нет.Вот почему вы используете бинарный.Третий вариант не логичен.
Чтобы соответствовать определениям, единственный способ написать, как показано ниже?
SELECT * FROM product WHERE hide <> 1 OR hide IS NULL;
(с использованием MySQL 5.6.17)
Вопрос-2: Как вы временно скрываете товар?По-другому?