![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Mam dane json, przykładowo:
Zapisuje je do bazy MySQL, do pola typu json. I po zapisie w polu mam wartość:
Jak widać przy zapisie dane zostały znormalizowane - posortowane wg. klucza. Czy da się to jakoś wyłączyć tak aby kolejność kluczy z oryginalnego json została zachowana również w polu tabeli MySQL? Powyższy json to tylko przykład, w rzeczywistości danych jest więcej i są dynamiczne (różne wartości i kolejności). Dane mają wyświetlane dokładnie wg. tej kolejności jak mam w oryginale - posortowanie przy zapisie to uniemożliwia. Ten post edytował jol.us_ 18.10.2017, 11:55:48 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
Zawsze możesz wybierać wszystkie rekordy, a warunek dla JSON umieścić już po stronie skryptu. Ale czy to będzie bardzie eleganckie? Czasem redundancji danych nie da się uniknąć.
Czekaj czekaj. Jeśli dobrze zrozumiałem, to jest tak jak wyżej. Czyli JSON_EXTRACT używasz w WHERE, tak? W takim razie przechowuj JSON w polu TEXT, a dla potrzeb WHERE i JSON_EXTRACT użyj CAST na tym polu. Wyselekcjonujesz odpowiednie rekordy, a JSON nadal będzie w oryginalnej postaci. Jeśli mój tok rozumowania jest niepoprawny, to wyjaśnij proszę w jakim celu na poziomie zapytania używasz JSON_EXTRACT. Ten post edytował trueblue 19.10.2017, 10:52:54 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 27.09.2025 - 22:57 |