Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chuyển đổi boolean thành dấu dương/âm (1/-1) trong MySQL

Để 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.