MySQL query podatkov v JSON zapisu
3 naročniki
3 naročniki
Kakšen je "pravilen" način za poizvedbo v tabeli, kjer so podatki zapisani v JSON formatu?
Recimo da imam v stolpcu z imenom custom_fields zapisano:
[{"id":"1","value":"18"},{"id":"2","value":"20"}]
Želim dobiti vse zapise, ki imajo v stolpcu custom_fields zapisan value 18.
Torej
SELECT * FROM `my_data_table` WHERE `custom_fields` = ???
Kako bi v PHP skonstuiral takšno poizvedbo?
4 odgovori
kolko jaz vem, ne gre .... lahko pa naredis normalen like na vsebino inputa
SELECT * FROM
my_data_table
WHEREcustom_fields
like '%value:18%'
Zakaj si se sploh lotil zapisov JSON formata v mysqlu? Kot so predhodniki povedali je ena možnost, da uporabiš like, ampak na dolg rok, ko boš imel v mysqlu zapisano večjo količino podatkov, ti bo to zelo upočasnilo zadevo. Svetujem ti, da prestrukturiraš zapis v mysql tabelo z dvema ali več polji: id1, value1, id2, value2 in potem uporabiš mysql stavek:
SELECT * FROM 'mydatatable' WHERE 'value1' = '18' OR value2 = '18'