我有一个表,该表包含两列,这些列以数组格式存储数据。例如,'duration'
包含[1,2,3,4]之类的值,column_1
包含[5,6,7]之类的值。我想将两者结合起来以创建一个column_2
,其值在此处为数组[1,2,3,4,5,6,7]。这些数字将是唯一的,并且数组的长度可以不同。
答案 0 :(得分:1)
对您有用吗?
select array_cat(array_construct(NULL, 2), array_construct(3, 4));
+------------------------------------------------------------+
| ARRAY_CAT(ARRAY_CONSTRUCT(NULL, 2), ARRAY_CONSTRUCT(3, 4)) |
|------------------------------------------------------------|
| [ |
| undefined, |
| 2, |
| 3, |
| 4 |
| ] |
+------------------------------------------------------------+
但是,如果您看到这样的错误:
select array_cat(NULL, array_construct(3, 4));
100072 (22000): NULL result in a non-nullable column
您只需添加:
select array_cat(IFNULL(NULL, array_construct()), array_construct(3, 4));
+-------------------------------------------------------------------+
| ARRAY_CAT(IFNULL(NULL, ARRAY_CONSTRUCT()), ARRAY_CONSTRUCT(3, 4)) |
|-------------------------------------------------------------------|
| [ |
| 3, |
| 4 |
| ] |
+-------------------------------------------------------------------+
1 Row(s) produced. Time Elapsed: 1.241s
注意:将ARRAY_CONSTRUCT()替换为您的列名。