
MySQL select podle json BLOBu
Mám MySQL DB. V ní je tabulka subuser, která jako poslední sloupec obsahuje BLOB data, ve kterém jsou data v json formátu, např.:
{"data":"{\"username\":\"LE056168\",\"firstname\":\"Lenka\",\"lastname\":\"Hor\\u00e1\\u010dkov\\u00e1\",\"group\":2,\"segment\":3,\"admin\":\"0\"}","name":"Lenka Hor\u00e1\u010dkov\u00e1","email":"xyz@seznam.cz","subuser_id":"4450","admin":"0"}
A já potřebuju selektovat záznamy podle group_id, např. všechny, které budou mít group_id = 1.Našla jsem tohle:
SELECT *
FROM cps_subuser
WHERE data
REGEXP "^{.*\"group_id\":0,.*}$"
ale bohužel při daném rozsahu DB (cca 4 000 záznamů, nové stále přibývají), je to nepoužitelně pomalé, zvláště, když je to součástí joinu ještě několika dalších tabulek, které mají také řádově tisíce záznamů[/code]Je nějaký jiný efektivnější způsob jak se k datům dostat? Když přijdu s nápadem data extrahovat do samostatných sloupečků, tak se mnou šéf vyrazí dveře, protože on je na tento způsob ukládání dat moc pyšný. Vysvětloval mi, že to tak prý je z bezpečnostních důvodů.