Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

비트 필드에서 GROUP_CONCAT()을 사용하면 MySQL에서 쓰레기가 반환됩니까? 어떻게 고치는 지?

<시간/>

수정하려면 열에 0을 추가하여 group_concat()을 사용하십시오. 먼저 테이블을 생성하겠습니다 -

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

삽입 명령을 사용하여 테이블에 일부 레코드 삽입 -

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)

select 문을 사용하여 테이블의 모든 레코드 표시 -

mysql> select * from DemoTable1856;

이것은 다음과 같은 출력을 생성합니다 -

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

다음은 비트 필드에 group_concat()을 사용하고 가비지 값 반환을 방지하는 쿼리입니다 -

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

이것은 다음과 같은 출력을 생성합니다 -

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