2010-12-09 5 views
32

Я хотел создать истинное/ложное поле, если товар находится на складе.MySQL Boolean "tinyint (1)" содержит значения до 127?

Я хотел установить его в Boolean (который преобразуется в tinyint(1)), 1 в наличии, 0 для нет на складе.

Я получаю каналы от продавцов, поэтому я подумал про себя: «Что, если они пройдут, сколько инков?»

Так что я задавался вопросом, вставил ли я число выше 1, что произойдет. Я предполагал, что это будет по умолчанию 1.

К моему удивлению, это позволит мне содержать любое количество до 127, что-нибудь по умолчанию до 127.

Может кто-нибудь объяснить, почему?

ответ

52

Подписанный TINYINT тип данных может хранить целые значения от -128 до 127.

Однако TINYINT(1) не изменяет минимальное или максимальное значение, которое он может хранить. Он просто говорит : только одна цифра, когда значения этого типа печатаются как выходные данные.

+2

Есть ли какая-либо причина вместо того, чтобы использовать бит (1)? Хотя я замечаю, что по умолчанию он равен 0, если я попытаюсь установить его на> 1. – fncomp

+1

@JoshN: Не слишком уверен в этом, но я нашел [этот вопрос] (http: // stackoverflow.com/questions/488811/tinyint-vs-bit), который может помочь. – BoltClock

+0

Значит ли это, когда я пытаюсь выбрать его в своем приложении (php), я просто получу первую цифру, так что 127 будет 1 и 97 будет 9? –

7

Тип данных tinyint использует 1 байт хранилища. 256 возможных целых значений могут быть сохранены с использованием 1 байт (от -128 до 127). если вы определяете как tinyint unsigned, тогда отрицательные значения отбрасываются, поэтому можно хранить (от 0 до 255).

6

См. here как работает MySQL. Если вы используете MySQL> 5.0.5 вы можете использовать BIT как тип данных (в более старых версиях BIT будут интерпретированы как TINYINT(1). Однако (1) -части только ширина дисплея, а не внутренняя длиной.

+3

Не могли бы вы объяснить разницу между * шириной отображения * и * внутренней длиной *. Я новичок в этой концепции, я думал, что было в базе данных, что было выбрано? –

+1

с просьбой объяснить это тоже. – MaXi32

Смежные вопросы