Autor | Zpráva | ||
---|---|---|---|
err Profil * |
#1 · Zasláno: 15. 2. 2022, 16:27:58
Ahoj, v databázi mám toto (dávám příklad) řádek JSON (long text):
{ "emoji": { "food": { "good": "apple", "normal": "value2" } } } Jak to mám napsat SQL abych upravil emoji->food->good na hodnotu například na "strawberry"? |
||
Firibix Profil |
#2 · Zasláno: 15. 2. 2022, 17:00:12
Reakce na err:
Nijak. Vytáhni si celý JSON do aplikace, použij funkce tvého programovacího jazyka a upravený JSON ulož zpátky. Ideálně místo textového typu používej přímo nativní datový typ pro JSON, který tvoje databáze nabízí. Pak možná (např. v PostgreSQL) budeš moci JSON manipulovat přímo v SQL. |
||
juriad Profil |
#3 · Zasláno: 15. 2. 2022, 17:14:53
Jakou databázi a jakou její verzi používáš?
Přestože není dobré ukládat JSON jako text, je možné hodnotu CAST ovat a následně s ní pracovat. Dostatečně nová MySQL by to měla tvoji operaci podporovat: dev.mysql.com/doc/refman/8.0/en/json-modification-functions.html
|
||
err Profil * |
Firibix:
ano, v mysql jsem to vytvořil jako JSON, lze tedy využívat mysql funkce pro práci s JSONem... takže to nejde? juriad: je to tabulka vytvořená jako JSON... asi jsem to napsal předtim blbě (nevytvořil jsem to jako long text, ale jako JSON) ...lze to tedy nějak upravit přímo aby to nemusel nejdříve vytahovat a potom ukládat? |
||
Radek9 Profil |
#5 · Zasláno: 15. 2. 2022, 19:06:35
err:
Ano. Prostě nějak takhle: UPDATE tabulka SET data = JSON_SET(data, '$.emoji.food.good', 'strawberry') WHERE id = 1 |
||
err Profil * |
Radek9:
„Ano. Prostě nějak takhle:“ nefunguje to... Radek9: „Ano. Prostě nějak takhle:“ promin... jo funguje to... měl jsem špatný název sloupce.... díky |
||
Časová prodleva: 2 roky
|
0