Computer >> Máy Tính >  >> Lập trình >> MySQL

Sử dụng GROUP_CONCAT () trên các trường bit trả về rác trong MySQL? Làm thế nào để khắc phục?

Để khắc phục, hãy sử dụng group_concat () có thêm số 0 với cột. Đầu tiên chúng ta hãy tạo một bảng -

mysql> create table DemoTable1856
     (
     Id int,
     Value bit(1)
     );
Query OK, 0 rows affected (0.00 sec)

Chèn một số bản ghi vào bảng bằng lệnh chèn -

mysql> insert into DemoTable1856 values(101,1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1856 values(102,0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1856 values(101,0);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1856 values(102,1);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1856 values(101,0);
Query OK, 1 row affected (0.00 sec)

Hiển thị tất cả các bản ghi từ bảng bằng câu lệnh select -

mysql> select * from DemoTable1856;

Điều này sẽ tạo ra kết quả sau -

+------+-------+
| Id   | Value |
+------+-------+
|  101 |       |
|  102 |       |
|  101 |       |
|  102 |       |
|  101 |       |
+------+-------+
5 rows in set (0.00 sec)

Đây là truy vấn để sử dụng group_concat () trên các trường bit và tránh trả về giá trị rác -

mysql> select group_concat(Value+0) from DemoTable1856
     group by Id;

Điều này sẽ tạo ra kết quả sau -

+-----------------------+
| group_concat(Value+0) |
+-----------------------+
| 1,0,0                 |
| 0,1                   |
+-----------------------+
2 rows in set (0.00 sec)