2016-03-23 3 views
1

私はacct_num varchar(25)という基表に列を持ち、ビューを作成していて、GROUP_CONCAT()がこの列に設定されています。これは、show create viewにtextデータ型として表示されます。 GROUP_CONCAT(acct_num)列のデータ型をVARCHAR(25)にすることは可能ですか?お知らせ下さい。私はMySQLのリファレンスから学んだ何group_concatのMySQLのvarcharカラムが、表示のテキストとして表示されます。

  • 私もVARCHAR(25)としてキャストするが、CASTがCHARとして適用することができないVARCHARとして
  • のでGLOBAL_SET_GROUP_CONCAT_VALUE = 512を設定するオプションがありますあなたはvarchar()としてGROUP_CONCAT()の出力を得ることができる - それは私のために を動作しませんでした。

答えて

1

これを実現するには、group_concat_max_lenを設定します。ここで

はデモです:

SQL:

-- To change the setting globally 
set global group_concat_max_len = 512; 
-- To change the setting only for current session 
set group_concat_max_len = 512; 
create table t1(acct_num varchar(25)); 
create view v1 as select group_concat(acct_num) as gc_acct_num from t1; 
desc v1; 

出力:

mysql> -- To change the setting globally 
mysql> set global group_concat_max_len = 512; 
Query OK, 0 rows affected (0.00 sec) 

mysql> -- To change the setting only for current session 
mysql> set group_concat_max_len = 512; 
Query OK, 0 rows affected (0.00 sec) 

mysql> create table t1(acct_num varchar(25)); 
Query OK, 0 rows affected (0.01 sec) 

mysql> create view v1 as select group_concat(acct_num) as gc_acct_num from t1; 
Query OK, 0 rows affected (0.00 sec) 

mysql> desc v1; 
+-------------+--------------+------+-----+---------+-------+ 
| Field  | Type   | Null | Key | Default | Extra | 
+-------------+--------------+------+-----+---------+-------+ 
| gc_acct_num | varchar(512) | YES |  | NULL |  | 
+-------------+--------------+------+-----+---------+-------+ 
1 row in set (0.00 sec) 
+0

Perfect.Yourのアドバイスがうまく働きました。私はそれもMySQLの参照から参照して取得することができました。 – user4033385

関連する問題