2015-12-25 14 views
9

Tôi có ba giá trị: 0, 1, NULL. Bây giờ tôi muốn biết, loại dữ liệu nào là tốt cho cột đó?Loại dữ liệu tốt nhất để lưu trữ 0, 1, giá trị null

Nhưng đường đi, NULL là mặc định của cột đó (trong cơ sở dữ liệu) và tôi đạt được 01 tham số hình thức (có được phương pháp) của URL. Một cái gì đó như thế này:

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

Và sau đó

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

Và sau đó

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

Tôi muốn sử dụng tinyint, hoặc boolean, mà tôi nghĩ chỉ là 'tinyint (1)' – adeneo

+0

'int (1) unsigned NULL' –

Trả lời

8
TINYINT(1) UNSIGNED NULL 

tinyint của là hoàn hảo cho các phép toán luận

+0

Cảm ơn bạn ...! +1 – stack

10

Tôi sẽ sử dụng Bit-Value Type - BIT

BIT(1) NULL DEFAULT NULL 

BIT(1) nhu cầu 1 Byte dung lượng lưu trữ, mà là giống như TINYINT(1) làm. Sự khác biệt là BIT(1) chỉ chấp nhận các giá trị 01 (hoặc b'0'b'1') trong khi TINYINT(1) UNSIGNED chấp nhận các giá trị từ 0 tối đa 255. Độ dài được xác định trong ngoặc đơn cho TINYINT không ảnh hưởng đến các giá trị có thể được lưu trữ. Nó chỉ là thông tin cho khách hàng, cách hiển thị các giá trị (ví dụ: nếu bạn sử dụng ZEROFILL).

+0

Cảm ơn bạn ....! +1 – stack

+0

bit có khả năng là tốt nhất nếu nhu cầu của anh chỉ là 0,1. nhưng ông cũng đề cập đến null. tổng cộng 3 giá trị. – Conceptz

+1

@Conceptz - 'BIT' cũng có thể lưu trữ' NULL' giống như mọi kiểu dữ liệu có thể theo mặc định. Bạn phải định nghĩa nó một cách rõ ràng 'NOT NULL' nếu bạn không muốn nó là' NULL'. [fiddle] (http://sqlfiddle.com/#!9/470d14/1) –

Các vấn đề liên quan