これは、MySQL8.0で
select r.res from mytable,
json_table(mytable.content, '$[*]' columns (res int path '$')) r
where mytable.id = 1
MySQL 8.0.17でテストしましたが、これが出力です:
+------+
| res |
+------+
| 3 |
| 4 |
+------+
MySQL 8.0より古いバージョンを使用する場合は、次のオプションがあります。
- 信じられないほど複雑なSQLソリューションを見つけてください。これは、ほとんどの場合、問題を解決するための間違った方法です。これは、コードのコストが高すぎて維持できないためです。
- JSON配列をそのまま取得し、アプリケーションコードで分解します。
- JSON配列を使用する代わりに、行ごとに1つの値を持つようにデータを正規化します。
MySQLでJSONを使用することについて、Stack Overflowでよく質問があり、この機能によってMySQLが台無しになっていると確信しています。開発者はそれを不適切に使用し続けます。彼らはそれが挿入を簡単にするのが好きです 半構造化データですが、クエリが必要であることがわかりました。 そのデータは非常に複雑です。