2016-03-23 23 views
1
numaralı

numaralı tablonun alt kısmında yer almaktadır. Taban tablosundaki sütun acct_num varchar(25) olarak var ve bir Görünüm oluşturuyorum ve GROUP_CONCAT() bu sütuna ayarlı. Bu, görünüm oluşturma görünümünde text veri türü olarak gösterilir. GROUP_CONCAT(acct_num) sütun için VARCHAR(25) veri türü olması mümkün mü? Tavsiye lütfen. Ben MySQL referans öğrendiklerimgroup_concat üzerindeki MySQL varchar sütunu,

:

  • olsa varchar (25) olarak döküm ama CAST CHAR olarak uygulanabilir değil VARCHAR olarak
  • yüzden GLOBAL_SET_GROUP_CONCAT_VALUE = 512 ayarlamak için bir seçenek var GROUP_CONCAT() 'ın varchar() olarak çıktısını alabiliyorsunuz, ancak benim için çalışmadı.

cevap

1

Bunu başarmak için group_concat_max_len ayarlayabilirsiniz. İşte

bir demo:

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; 

Çıktı:

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 tavsiye yolunda gitti. MySQL referansından da bahsetmiştim. – user4033385