Todos os produtos
Search
Central de documentação

AnalyticDB:Array

Última atualização: Jun 27, 2026

O AnalyticDB for MySQL 3.1.1 e versões posteriores oferecem suporte aos tipos de dados ARRAY e MAP. Esta página descreve o tipo ARRAY: definição, limitações, exemplos de uso e funções compatíveis.

Definição

Um ARRAY armazena uma coleção de elementos do mesmo tipo de dados e permite duplicatas, semelhante a uma lista em Java. Todos os elementos de um array devem ter o mesmo tipo. Por exemplo, ao definir array<int> para uma coluna, cada elemento nessa coluna será do tipo INT.

Arrays aninhados são suportados. Exemplo: array<array<string>>.

Limitações

Importante

Não é possível criar índices em colunas ARRAY ou MAP.

Para filtrar dados de array com eficiência, combine condições de busca nas consultas SQL em vez de varrer arrays inteiros. Minimizar os dados verificados melhora o desempenho da consulta.

Trabalhar com arrays

Crie uma tabela

A instrução a seguir cria uma tabela com duas colunas de array: b do tipo array<int> e c do tipo array<array<string>>.

Create Table `array_test` (
  `a` int,
  `b` array<int>,
  `c` array<array<string>>,
  primary key (`a`)
) DISTRIBUTED BY HASH(`a`)

Inserir dados

Insira valores de array como strings JSON. A instrução abaixo insere uma linha em que b é [1,2,3] e c é [["a"],["b","c"]].

insert into array_test values (1, '[1,2,3]', '[["a"],["b","c"]]');

Consultar dados

Consulte a tabela para recuperar todas as linhas:

mysql> select * from array_test;
+------+---------+-------------------+
| a    | b       | c                 |
+------+---------+-------------------+
|    1 | [1,2,3] | [["a"],["b","c"]] |
+------+---------+-------------------+
1 row in set (0.08 sec)

As colunas ARRAY e MAP são retornadas no formato JSON. Por exemplo, c[2], subcoluna aninhada do tipo array<string>, é retornada como um array JSON.

Acessar elementos do array

Use a notação de colchetes ou a função element_at para recuperar elementos por índice.

Importante

Os índices de array começam em 1, não em 0. b[1] e element_at(b, 1) são equivalentes.

A tabela a seguir mostra ambas as sintaxes de acesso e seus resultados:

Expressão

Resultado

b[1]

1 (primeiro elemento de b)

element_at(b, 1)

1 (primeiro elemento de b)

c[2]

["b","c"] (segundo elemento de c)

element_at(c, 2)

["b","c"] (segundo elemento de c)

Exemplo completo de consulta:

mysql> select a,b[1],element_at(b,1),c[2],element_at(c,2) from array_test;
+------+------+-----------------+-----------+-----------------+
| a    | b[1] | element_at(b,1) | c[2]      | element_at(c,2) |
+------+------+-----------------+-----------+-----------------+
|    1 |    1 |               1 | ["b","c"] | ["b","c"]       |
+------+------+-----------------+-----------+-----------------+
1 row in set (0.11 sec)

Funções compatíveis

Função

Descrição

Tipo de retorno

element_at

Retorna o elemento no índice especificado (base 1). Exemplo: element_at(array[1,2], 1) retorna 1.

T

size

Retorna a quantidade de elementos em um array.

int

contains

Verifica se um array contém o valor especificado. Exemplo: contains(array[1,2], 2) retorna 1.

BOOL

array_max

Retorna o maior elemento de um array.

T

array_min

Retorna o menor elemento de um array.

T

array_position

Retorna a posição da primeira ocorrência de um elemento. Exemplo: array_position(array['a','b','b'],'b') retorna 2.

int

array_remove

Remove todos os elementos iguais ao valor especificado. Exemplo: array_remove(array['a','b','b'],'b') retorna ['a'].

array

array_sort

Ordena um array. Exemplo: array_sort(array[3,2,1]) retorna [1,2,3].

array

reverse

Inverte a ordem dos elementos. Exemplo: reverse(array[5,9,3]) retorna [3,9,5].

array

shuffle

Retorna o array com elementos em ordem aleatória. Exemplo: shuffle(array[1,5,8]) pode retornar [5,1,8].

array

slice

Retorna um subarray. start é o índice inicial (base 1); length é a quantidade de elementos a retornar. Exemplo: slice(array[1,2,3,4,5], 3, 2) retorna [3,4].

array

concat

Mescla dois ou mais arrays, mantendo duplicatas. Exemplo: concat(array[1], array[1,2]) retorna [1,1,2].

array

array_distinct

Remove elementos duplicados de um array. Exemplo: array_distinct(array[1,1,2]) retorna [1,2].

array

array_union

Mescla dois ou mais arrays e remove duplicatas. Exemplo: array_union(array[1], array[1,2]) retorna [1,2].

array

array_intersect

Retorna elementos presentes em todos os arrays de entrada. Exemplo: array_intersect(array[1], array[1,2]) retorna [1].

array

array_join

Concatena elementos do array em uma string usando o delimitador especificado. Exemplo: array_join(array[1,2,3,4],'a') retorna 1a2a3a4.

string

flatten

Achata um array aninhado em um array de nível único. Exemplo: flatten(array[array[1,2],array[3]]) retorna [1,2,3].

array