MSQL like nem talál ékezetes json-t
Sziasztok!
A mysql egyik oszlopában JSON ben tárolok adatokat.
Az ékezetes karaktereket ugye kódolja, a "normált" nem.
Sajnos a keresés nem jól működik, mert az ékezetes karaktereket, amit ugye kódolt, azt nem találja. Amiben nincs ékezet, azt igen:
Tehát a Tesztem szónál:
Tárolva: ["Tesztem"]
keresés: where ( `labels` like '%"Tesztem"%' )
van találat, de a Tésztám:
Tárolva: ["T\u00e9szt\u00e1m"]
Keresés: where ( `labels` like '%"T\u00e9szt\u00e1m"%' )
nincs találat. Van ötlet mi lehet a gond?
előre is köszönöm a segítséget.
■ A mysql egyik oszlopában JSON ben tárolok adatokat.
Az ékezetes karaktereket ugye kódolja, a "normált" nem.
Sajnos a keresés nem jól működik, mert az ékezetes karaktereket, amit ugye kódolt, azt nem találja. Amiben nincs ékezet, azt igen:
Tehát a Tesztem szónál:
Tárolva: ["Tesztem"]
keresés: where ( `labels` like '%"Tesztem"%' )
van találat, de a Tésztám:
Tárolva: ["T\u00e9szt\u00e1m"]
Keresés: where ( `labels` like '%"T\u00e9szt\u00e1m"%' )
nincs találat. Van ötlet mi lehet a gond?
előre is köszönöm a segítséget.
Menekülj!
:) Érteni szeretném inkább.
Tárolhatnám serialize állapotban is, ha nincs megoldás az lesz, csak jó lenne érteni, miért nem találja. :D
Escape=menekül angolul. Gábor
Aki keres az talál :). Sok
Sok sok backslash kell.
Próbáltam tegnap, de nekem
Egy tanács: relációs
A labeleknek gyanúsan külön tábla dukálna, a kapcsolat jellegétől függően akár kapcsolótáblával. Nem csak kevesebb szopás (ha az ember egyszer rászánja az időt, és megtanulja a join-t használni), de ráadásul még indexelhető is lesz.
+1
(Remélem nem fajul ez is
Csak megjegyezném, hogy a Thunderbird a messages-db.sqlite állomány messages táblájának jsonAttributes mezejében JSON formátumú karakterláncot tárol. Nem bogarásztam át a forráskódját, de meglehetősen biztos vagyok benne, hogy nem csak tárolásra használják, mivel eddigi kutakodásaimból úgy tudtam meg, hogy a levelek állapota (új, olvasatlan, …) csak onnan tudható meg.
Én a nem-tárolási tanácsot annyiban módosítanám, hogy szerintem a belső feldolgozás is rendben van. Azaz tárolt eljárással, vagy SQLite esetén regisztrált függvénnyel.
PostgreSQL
Danke
Tanácsomat úgy módosítanám, hogy MySQL esetén ne tárolj JSON-ban adatokat, ha azokra feltételt, rendezést, stb. (bármit sima kiolvasáson kívül) akarsz alkalmazni. Más motorok esetén is előbb tájékozódj, hogy érdemes-e.
Megannyi angol lord társalog itt
Kedvencem az announce meg a
Fasza.
Elnézést, lebetegedtem.
Escape: Végül én is rájöttem, a kapcsolatra. Vegyük úgy hogy szándékos félreértés volt, és vicceltem. :D
A válaszokat nagyon köszönöm, szabo.b.gabor -nak részben igaza volt.
ugyan én kerestem, de nem találtam, ő viszont megtalálta a megoldást.
Az alább láthatjátok:
`labels` like '%"T\\\\u00e9szt\\\\u00e1m"%'
Ez működik.
Talán másnak is hasznos lesz az infó. :)