- 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> )
- Siehe auch:
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 inarray
ü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 |
| ] |
+--------------------------------------------------+
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" |
| ] |
+--------------------------------------------------+
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 |
| ] |
+---------------------------------------------------+