[1,2,3]
mysqlで配列を取得したいと思います。例えば:
with tbl (id) as (
select 1 union select 2 union select 3
) select 'something', json_arrayagg(id) from tbl
# something, json_arrayagg(id)
# 'something', '[1, 2, 3]'
CTEで「テーブルを作成」してからそれを外部にグループ化するよりも、これを行う簡単な方法はありますか?
たとえば、私は次のようなことをしようとしています(可能であれば):
SELECT '1', [1,2,3]
MySQL '8.0.20'
エラーコード:1064。SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルで、「[1,2,3])の近くで使用する正しい構文を確認してください。IDによるソートグループからのID asc SELECT '1'、[1,2,3] 'at 4行目
上記の多くのコメントの後、あなたの実際の質問が出てきました。それは、MySQLでJSONリテラルを操作する方法について混乱しているということです。MySQLの有効なJSONリテラルは、文字列リテラルと同様に、常に一重引用符で囲まれています。この小さな例を考えてみましょう。
WITH yourTable AS (
SELECT '1' AS id, '[1,2,3]' AS array
)
SELECT Id, JSON_EXTRACT(array, '$[2]') AS third
FROM yourTable;
これ1, 3
は、デモリンクが示すように出力されます。ここで重要なのは、形成方法をすでに知っているJSON配列リテラルが一重引用符で囲まれていることです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加