Kategorien:

Funktionen für semistrukturierte und strukturierte Daten (Array/Objekt)

ARRAY_INSERT

Gibt ein Array zurück, das alle Elemente des Quellarrays sowie das neue Element enthält.

Syntax

ARRAY_INSERT( <array> , <pos> , <new_element> )
Copy
Siehe auch:

ARRAY_APPEND, ARRAY_PREPEND

Argumente

array

Das Quellarray.

pos

Eine (nullbasierte) Position im Quellarray. Das neue Element wird an dieser Position eingefügt. Das ursprüngliche Element dieser Position (falls vorhanden) und alle nachfolgenden Elemente (falls vorhanden) werden im resultierenden Array um eine Position nach rechts verschoben (d. h. das Einfügen bei Position 0 hat dieselbe Wirkung wie die Verwendung von ARRAY_PREPEND).

Eine negative Position wird als ein Index vom Ende des Arrays interpretiert (z. B. führt -1 zum Einfügen vor dem letzten Element im Array).

new_element

Das Element, das eingefügt werden soll. Das neue Element befindet sich an Position pos. Die relative Reihenfolge der anderen Elemente aus dem Quellarray bleibt erhalten.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist ARRAY.

Nutzungshinweise

  • Wenn Sie der Funktion ein strukturiertes ARRAY übergeben, gibt die Funktion ein strukturiertes ARRAY desselben Typs zurück.

  • Wenn array ein strukturierter ARRAY-Typ ist, muss der Typ des neuen Elements implizit umwandelbar (Koersion) in den ARRAY-Typ sein.

  • Wenn der absolute Wert von pos die Anzahl der Elemente in array überschreitet, werden zwischen dem neuen Element und den Elementen aus dem Quellarray zusätzliche leere Elemente eingefügt.

  • Um Elemente an ein Array anzuhängen oder voranzustellen, sollten Sie stattdessen ARRAY_APPEND oder ARRAY_PREPEND verwenden.

Beispiele

Dies ist ein einfaches Beispiel für das Einfügen in ein Array:

SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),2,'HELLO') |
|--------------------------------------------------|
| [                                                |
|   0,                                             |
|   1,                                             |
|   "hello",                                       |
|   2,                                             |
|   3                                              |
| ]                                                |
+--------------------------------------------------+
Copy

Dies zeigt eine Einfügung, die einen Index verwendet, der größer ist als die Anzahl der vorhandenen Elemente im Array.

SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'hello');
+--------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),5,'HELLO') |
|--------------------------------------------------|
| [                                                |
|   0,                                             |
|   1,                                             |
|   2,                                             |
|   3,                                             |
|   undefined,                                     |
|   "hello"                                        |
| ]                                                |
+--------------------------------------------------+
Copy

Dies zeigt eine Einfügung, die einen negativen Index verwendet.

SELECT ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'hello');
+---------------------------------------------------+
| ARRAY_INSERT(ARRAY_CONSTRUCT(0,1,2,3),-1,'HELLO') |
|---------------------------------------------------|
| [                                                 |
|   0,                                              |
|   1,                                              |
|   2,                                              |
|   "hello",                                        |
|   3                                               |
| ]                                                 |
+---------------------------------------------------+
Copy