Наилучший тип данных для хранения 0, 1, нулевые значения

У меня есть три значения: 0, 1, NULL. Теперь я хочу знать, какой тип данных подходит для этого столбца?

Но путь, NULL является значением по умолчанию для этого столбца (в базе данных), и я достигаю

t20 > и 1 параметра формы (get method) URL. Что-то вроде этого:
www.example.com/?q=param=0

И затем

$var = isset($_GET['param']) ? $_GET['param'] : null;

И затем

INSERT INTO table(col) values ($var);

Ответ 1

Это 2019 год! Это было отмечено правильно лет назад. Пожалуйста, посмотрите ответ пола Шпигеля прямо под этим, чтобы получить более современный ответ. #

TINYINT (1) НЕ ПОДПИСАНО NULL

tinyint идеально подходят для логических

Ответ 2

ОБНОВИТЬ

Так как MySQL (8.0.16) и MariaDB (10.2.1) реализовали ограничение CHECK, я бы сейчас пошел с

bool_val TINYINT UNSIGNED CHECK(bool_val <= 1)

дб <> скрипка

или же

bool_val TINYINT CHECK(bool_val IN(0,1))

дб <> скрипка

Оригинальный ответ

Я бы использовал тип битового значения - BIT

BIT(1) NULL DEFAULT NULL

BIT(1) требуется 1 байт памяти, такой же, как TINYINT(1). Разница в том, что BIT(1) принимает только значения 0 и 1 (или b'0' и b'1'), а TINYINT(1) UNSIGNED принимает значения от 0 до 255. Длина, TINYINT в скобках для TINYINT, не влияет на значения, которые можно сохранить. Это только информация для клиентов, как отобразить значения (например, если вы используете ZEROFILL).