問題タブ [mysql-json]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 配列をトラバースするためのmysql JSONパスの正しい構文?
私の質問は、mysql の JSON データ型を検索するときに、json 配列の内容を検索することです。
DB構造
したがって、mysql テーブルに 2 つの行があり、json フィールドがfoo
.
最初の行には次のものがあります。
2 行目は次のとおりです。
機能するもの
走れる
2 つの結果を返す:bar
およびbaz
走れる
1 つの結果を返すには: 1
- すなわち。最初の行の ID。
私の問題
mysql のドキュメント[*]
には、「JSON 配列内のすべての要素の値を評価する」ために使用できると記載されています。
ただし、次のクエリはゼロ項目を返します。
クエリの何が問題になっていますか?
mysql - MySQL でオブジェクトの配列を使用して JSON 列をクエリする
次の配列を持つjson列があります。
24276e4b-de81-4c2c-84e7-eed9c3582a31
ドキュメント列にIDを持つ行を取得するために次のクエリを試しましたが、結果は返されません:
正しいクエリを実行する方法を知っている人はいますか?
mysql - array.array の JSON_REMOVE で「パス式に * および ** トークンが含まれていない可能性があります」というエラーが発生する
SELECT JSON_REMOVE(@I, '$.friends[*].name');
または、以下 SELECT JSON_REMOVE(@I, '$.friends[*].friends');
の JSON で、次のエラーが発生します。
JSON:
ただし、SELECT JSON_EXTRACT(@I, '$.friends[*].friends')
そうすると、結果は正常に返されます。
friends.name
基本的に、すべてが削除された文字列を返し、場合によっては削除された文字列を返したいですfriends.friends
。
mysql - JSON データ型の配列内のオブジェクト プロパティの検索に関する問題
value
JSONタイプとして次のスキーマがあります
以下のクエリで行foo
が返されると思っていましたが、返されませんでした。
value->'$.friends[*].friendId'
以下のクエリで機能するため、条件は有効と思われます。
では、クエリselect * from people where value->'$.friends[*].friendId' = "123";
が結果を返さないのはなぜでしょうか?
mysql - 「IN」句で使用するMySQL JSON配列?
IN
JSON 配列を MySQL (JSON をサポートするバージョン 5.7 以降)の句のパラメーターとして使用できますか?
以下は、私がうまく動作しないコードです...
mysql - JSONデータ型の配列またはネストされたオブジェクト内のプロパティにインデックスを付ける方法は?
仮想列の生成は、JSON プロパティにインデックスを付けるための推奨される方法です。
しかし、インデックスを付けたいプロパティが配列またはオブジェクト内にある場合はどうなるでしょうか? たとえば、JSON プロパティが userId の配列であり、配列内の userId をクエリしているので、インデックスを作成したいとします。最善のアプローチは何ですか?
mysql - JSON_EXTRACT と CAST または STR_TO_DATE の連鎖が失敗する
MySQL の JSONFIELD 「データ」から日時を抽出しようとしています。
ただし、単純な JSON_EXTRACT を実行すると、返されるフィールドの型は JSON になります。
これをMySQL DATETIMEに変換したい。しかし、JSON_EXTRACT と STR_TO_DATETIME をチェーンすると、すべての NULL 値が得られます。
同様に、DATETIME としての CAST も失敗します。
文字列値から開始すると、これらのコマンドは両方とも機能します。
これを解決するための助けをいただければ幸いです!
mysql - MySQLの文字列json配列から要素を削除します
オブジェクトの文字列配列jsonを含む多くの列を持つテーブルがあります。
これらの配列からいくつかの要素を削除する必要があります。1 つの行から要素を削除する方法を見つけましたが、複数の行でそれを行うにはどうすればよいですか?
1行について、json_searchを使用して削除する必要がある要素を見つけましたが、削除する行と要素が多数あります。ストアド プロシージャ (while ループ) なしでそれを行う方法はありますか?
これはデータのサンプルです:
および/またはarray
を含む要素のみをそれぞれから削除する必要がありますa
g
私のクエリは次のとおりです。
すべての列を更新する方法を見つけましたが、このクエリはオブジェクト全体ではなく、json フィールドのみを削除します。オブジェクト全体を削除するにはどうすればよいですか?
mysql - MySQL JSON フィールドを使用してテーブルに結合する
ID のリストを格納する json フィールドがあります (ここではベスト プラクティスではありません)。この JSON フィールドで do 操作を使用し、それらを SQL で使用できるかどうかを知りたいです。
以下は、私が達成しようとしていることの架空の例です。このようなことは可能ですか?
上記のデータを使用して、次のような結果が得られるクエリを作成したいと思います。
私が考えている疑似スタイルの SQL を以下に示しますが、これが可能かどうか、またはこれを達成するために mysql が提供するどの JSON 関数を使用するかはまだわかりません
質問が明確でない場合はお知らせください。