Chúng ta đang sử dụng MySQL phiên bản 8.0.12. Hãy kiểm tra phiên bản MySQL trước:
mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec)
Để xử lý Boolean trong MySQL, bạn có thể sử dụng BOOL, BOOLEAN hoặc TINYINT(1). Nếu dùng BOOL hoặc BOOLEAN, MySQL sẽ chuyển đổi nội bộ thành TINYINT(1).
Trong kiểu dữ liệu BOOL hoặc BOOLEAN, giá trị true được biểu diễn là 1 và false là 0, tương tự như trong PHP, C, C++.
Để chứng minh MySQL chuyển đổi BOOL/BOOLEAN thành TINYINT(1), hãy tạo bảng với cột BOOLEAN hoặc BOOL.
Tạo bảng với cột BOOLEAN:
mysql> create table BoolOrBooleanOrTinyintDemo -> ( -> Id int NOT NULL AUTO_INCREMENT, -> isvalidAddress BOOLEAN, -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (0.74 sec)
Kiểm tra DDL của bảng bằng lệnh SHOW CREATE:
mysql> show create table BoolOrBooleanOrTinyintDemo\G
Kết quả:
*************************** 1. row *************************** Table: BoolOrBooleanOrTinyintDemo Create Table: CREATE TABLE `boolorbooleanortinyintdemo` ( `Id` int(11) NOT NULL AUTO_INCREMENT, `isvalidAddress` tinyint(1) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci 1 row in set (0.00 sec)
Cột isvalidAddress kiểu BOOLEAN đã được chuyển thành tinyint(1) nội bộ. Bây giờ kiểm tra true = 1, false = 0. Chèn dữ liệu với true/false:
mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.43 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.17 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.29 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(false); Query OK, 1 row affected (0.12 sec) mysql> insert into BoolOrBooleanOrTinyintDemo(isvalidAddress) values(true); Query OK, 1 row affected (0.33 sec)
Hiển thị tất cả bản ghi:
mysql> select *from BoolOrBooleanOrTinyintDemo;
Kết quả:
+----+----------------+ | Id | isvalidAddress | +----+----------------+ | 1 | 1 | | 2 | 0 | | 3 | 1 | | 4 | 0 | | 5 | 1 | +----+----------------+ 5 rows in set (0.00 sec)
Kết quả cho thấy true = 1, false = 0.
Trong PHP
Trong PHP, true cũng được biểu diễn là 1, false là 0.
Ví dụ PHP với biến isValidAddress = 1:
$isValidAddress = 1; if($isValidAddress) { echo 'true is represented as '; echo ($isValidAddress); } else { echo 'false is represented as '; echo ($isValidAddress); }Kết quả: true is represented as 1
Nếu thay isValidAddress = 0:
$isValidAddress=0; if($isValidAddress) { echo 'true is represented as '; echo ($isValidAddress); } else { echo 'false is represented as '; echo ($isValidAddress); }Kết quả: false is represented as 0