JSON オブジェクトを検索して特定のキーを取得する方法を見つけようとしていますが、別のキーを検索します。
これはサンプル スキーマです:
リーリーデータベース フィドル: https://www.db-fiddle.com/f/npPgVqh7fJL2JweGJ5LWXE/1
つまり、ID 1
を指定して、options
から文字列「Grass」を選択したいのです。
しかし、これを行う方法はないようです。これを行うと草を得ることができます:
リーリーただし、これには配列のインデックスを知っている必要があります
次のように配列のインデックスを部分的に取得できます。
リーリーそして、次のような非常に恐ろしいことを実行して、インデックス自体を取得します。
リーリー次のような本当に恐ろしいことをしても、自分の望むことを達成できます:
リーリーしかし、もっと良い方法があるはずですよね?
データベース フィドル: https://www.db-fiddle.com/f/npPgVqh7fJL2JweGJ5LWXE/1
MySQL 8.0 は、このようなケースの処理に役立つ JSON_TABLE() を提供します。
リーリーただし、 このようなクエリを作成するたびに、この複雑な JSON_TABLE() 式を実行する必要があります。
JSON を使用せず、代わりに通常の列 (テキストと値のペアごとに 1 行) を含むテーブルにデータを保存する方が簡単です。その後、任意の列で目的の値を検索できます。リーリー
Stack Overflow で見られる MySQL での JSON の使用の 99% は、JSON を使用しないことで簡単に解決できます。