メインコンテンツまでスキップ

array_slice

array_slice

説明

配列のスライスを返します。この関数は、offsetで指定された位置からlengthの要素をinputから抽出します。

構文

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パラメーターで指定された配列と同じデータ型を持つ配列を返します。

使用上の注意

  • offset1から始まります。
  • 指定された長さが抽出可能な要素の実際の数を超える場合、マッチするすべての要素が返されます。例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] |
+---------------------+