Hogyan tudnám lekérdezni?
Így tárolom a formal beküldött adatokat egy táblában.
{"text_875778":"Gipsz Jakab","text_773357":"Szeged","number_296869":"233","date_872182":"2016-11-19"}
Nekem csak a dátumra lenne szükségem . Azt hogyan lehetne lekérdezni. a date_ állandó kivéve az utána lévő azonosító számok.
"(date_\d+)":"(\d{4}-\d{2}-\d{2})"
Nesze.
Igaz az új MySQL már natívan is tudja kezelni a JSON -t.
DE! Nem lehet jól indexelni, és ha méretes az adatbázis, az bizony hosszadalmas lekérdezést eredményez.
Aztán mint JSON formátum, ismét gondos!
Mivel nem tudni milyen néven szerepel az adat, mivel változik benne az adat, így figurális kifejezéssel végig kell menni az összes elemen.
Egydolgot tudsz tenni, ha állandó a szerkezet, hogy szöveg függvénnyel felbontogatod, és kinyered belőle az adatott.
Pl. ha " -jelre bontod, akkor az utolsó előtti elem kell neked.
valahogy pl. így:
CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`jsonData` text NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `myTable` (`id`, `jsonData`) VALUES
(1, '{"text_875778":"Gipsz Jakab","text_773357":"Szeged","number_296869":"233","date_872182":"2016-11-19"}');
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`jsonData`, '"', ( LENGTH(`jsonData`) - LENGTH( REPLACE(`jsonData`, '"', '' ) ) )), '"', -1) AS `myDate` FROM `myTable` ;
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!