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

Sửa lỗi GROUP_CONCAT trên cột BIT trả về giá trị rác trong MySQL

Cột BIT khi dùng với GROUP_CONCAT thường trả về ký tự không in được. Khắc phục bằng cách cộng 0 (Value+0) để ép kiểu sang số.

Ví dụ minh họa

Tạo bảng cột BIT:

mysql> CREATE TABLE DemoTable1856 (Id INT, Value BIT(1));
mysql> INSERT INTO DemoTable1856 VALUES(101,1),(102,0),(101,0),(102,1),(101,0);

Sai: GROUP_CONCAT(Value) -> ký tự rác.
Đúng: GROUP_CONCAT(Value+0):

mysql> SELECT GROUP_CONCAT(Value+0) FROM DemoTable1856 GROUP BY Id;

Kết quả:

+-----------------------+
| group_concat(Value+0) |
+-----------------------+
| 1,0,0                 |
| 0,1                   |
+-----------------------+

Giải thích: BIT lưu trữ dưới dạng nhị phân. Cộng 0 chuyển thành số nguyên 0/1 để hiển thị đúng.