array_slice
説明
配列のスライスを返します。この関数は、offset
で指定された位置から input
から length
要素を抽出します。
構文
array_slice(input, offset, length)
パラメータ
-
input
: スライスを抽出したい配列。この関数は、次のタイプの配列要素をサポートします: BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, VARCHAR, DECIMALV2, DATETIME, DATE, および JSON。JSON はバージョン 2.5 からサポートされています。 -
offset
: 要素を抽出する開始位置。有効な値は1
から始まります。BIGINT 値である必要があります。 -
length
: 抽出したいスライスの長さ。BIGINT 値である必要があります。
戻り値
input
パラメータで指定された配列と同じデータ型の配列を返します。
使用上の注意
- オフセットは 1 から始まります。
- 指定された長さが実際に抽出可能な要素数を超える場合、一致するすべての要素が返されます。例4を参照してください。
例
例1: 3番目の要素から2つの要素を抽出します。
mysql> select array_slice([1,2,4,5,6], 3, 2) as res;
+-------+
| res |
+-------+
| [4,5] |
+-------+
例2: 最初の要素から2つの要素を抽出します。
mysql> select array_slice(["sql","storage","query","execute"], 1, 2) as res;
+-------------------+
| res |
+-------------------+
| ["sql","storage"] |
+-------------------+
例3: Null 要素は通常の値として扱われます。
mysql> select array_slice([57.73,97.32,128.55,null,324.2], 3, 3) as res;
+---------------------+
| res |
+---------------------+
| [128.55,null,324.2] |
+---------------------+
例4: 3番目の要素から5つの要素を抽出します。
この関数は5つの要素を抽出しようとしますが、3番目の要素からは3つの要素しかありません。その結果、これら3つの要素がすべて返されます。
mysql> select array_slice([57.73,97.32,128.55,null,324.2], 3, 5) as res;
+---------------------+
| res |
+---------------------+
| [128.55,null,324.2] |
+---------------------+