Để chuyển giá trị boolean (TRUE/FALSE, 1/0) thành dấu dương (1) hoặc âm (-1), dùng hàm IF() hoặc CASE WHEN.
Ví dụ minh họa
Tạo bảng boolean:
mysql> create table DemoTable (
isMarried boolean
);
Chèn dữ liệu:
mysql> insert into DemoTable values(true); mysql> insert into DemoTable values(false); mysql> insert into DemoTable values(false); mysql> insert into DemoTable values(true);
Hiển thị dữ liệu (MySQL boolean hiển thị 1/0):
mysql> select * from DemoTable;
Kết quả:
+-----------+ | isMarried | +-----------+ | 1 | | 0 | | 0 | | 1 | +-----------+
Truy vấn chuyển boolean → 1 / -1
mysql> select if(isMarried,1,-1) from DemoTable;
Kết quả:
+--------------------+ | if(isMarried,1,-1) | +--------------------+ | 1 | | -1 | | -1 | | 1 | +--------------------+
Giải thích:
IF(isMarried, 1, -1): Nếu isMarried = TRUE (1) → trả về 1, ELSE (FALSE/0) → trả về -1- Trong MySQL: TRUE = 1, FALSE = 0. Bất kỳ giá trị non-zero nào cũng coi là TRUE
- Tương đương:
CASE WHEN isMarried THEN 1 ELSE -1 END
Ứng dụng: Tính điểm (+1 cho đúng, -1 cho sai), trọng số投票 (upvote=+1, downvote=-1), chuyển đổi flag sang hệ số nhân, v.v.