sql >> データベース >  >> RDS >> Mysql

MySQL 5.7:単純なJSON_ARRAYを行に変換する

    これは、MySQL8.0で JSON_TABLE()を使用して実行できます。 :

    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が台無しになっていると確信しています。開発者はそれを不適切に使用し続けます。彼らはそれが挿入を簡単にするのが好きです 半構造化データですが、クエリが必要であることがわかりました。 そのデータは非常に複雑です。




    1. PHPを使用してmysqlデータベースに.sqlファイルをインポートするにはどうすればよいですか?

    2. SQL INTERSECT

    3. 大文字と小文字を区別するようにMysqlテーブルの列を変更する

    4. エラーコード1005、SQL状態HY000:テーブルを作成できませんerrno:150