2017-03-24 2 views
0

Cette table contient environ 1,5 million de lignes. Une colonne particulière contient JSON. Ce que j'ai besoin de faire est d'interroger cette colonne pour ce JSON, puis de rechercher une clé/paire booléenne particulière "FLAG" dans ce JSON. Si ce "FLAG" est True, j'ai besoin de mettre à jour une autre clé/paire dans ce JSON à une valeur Null plutôt que la chaîne qu'il est actuellement. La partie la plus difficile pour moi est que je dois interroger le JSON lui-même et lancer la vérification. Mais ce n'est pas comme si je pouvais indexer le JSON comme dans d'autres langues, c'est effectivement une chaîne que je vais devoir interroger via sql-regex. Je suis également un peu confus quant à la façon dont je vais chirurgicalement mettre à jour la deuxième clé/paire à un null.Interrogation d'une colonne de table SQL contenant JSON et mise à jour d'une valeur dans ce JSON en fonction d'une condition

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

serveur mysql ou sql? Et pouvez-vous fournir quelques détails? –

+0

@SeanLange - désolé, SQL Server. Corrigé les tags. Détails ajoutés – mche

Répondre

0

Je fini par venir à travers une fonction appelée STUFF (character_expression , start , length , replaceWith_expression) qui m'a permis de JAM ensemble une chaîne dans une chaîne. C'est la deuxième partie.

La première partie, dans ma clause FROM, j'ai sélectionné l'indice de la valeur que je devais diviser en utilisant PATINDEX ('%pattern%' , expression) pour rassembler l'index de départ de la position structurée.

Enfin, les WHERE et LIKE ont été utilisés pour modéliser la requête pour le "flag": true.