在 MySQL 中使用 GROUP_CONCAT() 返回位欄位時出現亂碼?如何解決?


要修復此問題,可在 group_concat() 中使用與列相加的 0。我們首先建立一個表−

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

使用 insert 命令在表中插入一些記錄 −

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)

更新於: 2019 年 12 月 26 日

140 次瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.