2017-03-24 6 views
0

このテーブルには約150万行があります。特定の列にJSONが含まれています。私がする必要があるのは、そのJSONの列をクエリし、そのJSON内の特定のブールキー/ペア "FLAG"をクエリすることです。その "FLAG"がTrueの場合、そのJSONの別のキー/ペアを現在の文字列ではなくNullに更新する必要があります。JSONを含むSQLテーブルの列をクエリし、条件に基づいてそのJSONの値を更新する

これは私のための厄介な部分は、私はJSON自体を照会し、チェックを実行する必要があるということです。しかし、他の言語のようにJSONのインデックスを作成することはできませんが、SQL-regexを使用してクエリを実行する必要があります。私はまた、第2の鍵/ペアを外科的にnullに更新する方法についてちょっと混乱しています。

Json Start: 
{ 
    "flag": true, 
    "anotherKvP": "some string" 
} 
How I need the Json to be updated to: 
{ 
    "flag": true 
    "anotherKvP": null 
} 
+0

mysqlまたはsql server?そして、あなたはいくつかの詳細を提供できますか? –

+0

@SeanLange - 申し訳ありませんが、SQL Server。タグを訂正しました。追加された詳細。 – mche

答えて

0

だから私は、私は、文字列内の文字列を一緒にジャムを許可STUFF (character_expression , start , length , replaceWith_expression)と呼ばれる機能を越えてくることになりました。それは第二の部分です。

私のFROM句の最初の部分は、PATINDEX ('%pattern%' , expression)を使用して分割するために必要な値のインデックスを選択して、パターン化された位置の開始インデックスを収集しました。

最後に、WHEREおよびLIKEを使用して、"flag": trueのクエリにパターンを一致させました。

関連する問題