2015-12-25 12 views
9

Mam trzy wartości: 0, 1, NULL. Teraz chcę wiedzieć, jaki typ danych jest odpowiedni dla tej kolumny?Najlepszy typ danych do przechowywania 0, 1, wartości pustych

Ale sposób, NULL jest domyślna tej kolumny (w bazie danych) i osiągnąć 0 i 1 forma parametr (get metody) URL. Coś takiego:

www.example.com/?q=param=0 

A potem

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

A potem

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

Użyłbym tinyint, lub boolean, co moim zdaniem jest po prostu 'tinyint (1)' – adeneo

+0

'int (1) unsigned NULL' –

Odpowiedz

8
TINYINT(1) UNSIGNED NULL 

tinyint są idealne dla logicznych

+0

Dziękuję ...! +1 – stack

10

użyłbym Bit-Value Type - BIT

BIT(1) NULL DEFAULT NULL 

BIT(1) potrzeby 1 bajt pamięci, osuszono jest taka sama jak TINYINT(1) nie. Różnica polega na tym, że BIT(1) przyjmuje tylko wartości 0 i 1 (lub b'0' i b'1') podczas TINYINT(1) UNSIGNED przyjmuje wartości od 0 do 255. Długość zdefiniowana w nawiasach dla TINYINT nie ma wpływu na wartości, które można zapisać. Jest to tylko informacja dla klientów, jak wyświetlać wartości (np. Jeśli używasz ZEROFILL).

+0

Dziękuję ....! +1 – stack

+0

Bit byłby prawdopodobnie najlepszy, gdyby jego potrzeby były równe 0,1. ale wspomniał także o wartości zerowej. technicznie 3 wartości łącznie. – Conceptz

+1

@Conceptz - "BIT" może również domyślnie przechowywać 'NULL', jak każdy typ danych. Musisz jawnie zdefiniować "NOT NULL", jeśli nie chcesz, aby był "NULL". [skrzypce] (http://sqlfiddle.com/#!9/470d14/1) –

Powiązane problemy