メインコンテンツまでスキップ
バージョン: Stable-3.3

array_slice

Description

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

Syntax

array_slice(input, offset, length)

Parameters

  • input: スライスを切り取りたい配列。この関数は、次のタイプの配列要素をサポートします: BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, VARCHAR, DECIMALV2, DATETIME, DATE, および JSON。JSON は 2.5 からサポートされています。

  • offset: 要素を切り取る開始位置。有効な値は 1 から始まります。BIGINT 値でなければなりません。

  • length: 切り取りたいスライスの長さ。BIGINT 値でなければなりません。

Return value

input パラメータで指定された配列と同じデータ型を持つ配列を返します。

Usage notes

  • オフセットは 1 から始まります。
  • 指定された長さが実際に切り取れる要素数を超える場合、すべての一致する要素が返されます。例 4 を参照してください。

Examples

Example 1: 3 番目の要素から始めて 2 つの要素を切り取ります。

mysql> select array_slice([1,2,4,5,6], 3, 2) as res;
+-------+
| res |
+-------+
| [4,5] |
+-------+

Example 2: 最初の要素から始めて 2 つの要素を切り取ります。

mysql> select array_slice(["sql","storage","query","execute"], 1, 2) as res;
+-------------------+
| res |
+-------------------+
| ["sql","storage"] |
+-------------------+

Example 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] |
+---------------------+

Example 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] |
+---------------------+