Zadejte hledaný výraz...

Smazání poslední neprázdné buňky v řádku

hijack
verified
rating uzivatele
(1 hodnocení)
19. 6. 2012 20:39:31
Zdravim,
resim problem - mam tabulku o asi 150tis. radcich a 120 sloupcich.
Potrebuju v kazdem radku smazat jeho posledni nenulovy zaznam - ten je bohuzel ale pokazde v jinem sloupci.
Zkousel jsem pomoci PHP skriptu, ktery prochazel tabulku radek po radku, v kazdem prochazel sloupce od konce, dokud nenarazil na nenulovou hodnotu, kterou pak pomoci UPDATE query prepsal na null.
Ten vsak bezel nekolik desitek minut a zvladl jen par tisic radku - coz mi prijde divne.
Neresil jste nekdo neco takoveho a neznate rychlejsi metodu?
19. 6. 2012 20:39:31
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776990
naniccz
verified
rating uzivatele
(3 hodnocení)
19. 6. 2012 20:53:16
Nedokážu si představit upotřebení takového požadavku, a i tabulky s 120 sloupci. Každopádně by se dalo zvládnou pomocí 120 SELECTů a UPDATŮ...
select PK from TBL where COL120 is null and .... and COL{120-i} is null
a následně UPDATE:
update TBL set COL{120-i-1} = null where PK in (.. výsledek předchozího selectu ..)
pro i=0..119
---------- Post added 19.6.2012 at 21:02 ----------
Vlastně to jde ještě jednodušeji, jen s UPDATy
update TBL set COL{i} = null where COL{i+1} is null and COL{i+2} is null and .... and COL120 is null
pro i=1..120
19. 6. 2012 20:53:16
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776989
acidclick
verified
rating uzivatele
19. 6. 2012 21:25:27
uff... ktera pak je to normalni forma? :D
19. 6. 2012 21:25:27
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776988
hm
verified
rating uzivatele
(20 hodnocení)
19. 6. 2012 21:35:15
skoro ani nemusim vedet k cemu to slouzi nebo bude slouzit a je mi uplne jasny ze tam je nakej hodne spatnej navrh databaze...
19. 6. 2012 21:35:15
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776987
acidclick
verified
rating uzivatele
19. 6. 2012 21:41:20
navrh nenavrh, znam inzertni/realitni system, ktery ma v hlavni tabulce 60 sloupcu vetsinu nulovou, ale provozovatelum vydelava miliony... vyvoj zapocal na nekde okolo 2001... taky jsem u par webu musel resit po tom co jich par firma koupila upravy. a je to peklo :)
nehlede na to, ze treba sharepoint tabulky resi podobne int1,int2-40...
hijack: sice nechapu moc vyznam, ale tak ten svuj script spoustej sekvencne treba po 100 radcich a ukladej si posledni PK nekam do dalsi tabulky a pak "where `pk`>ulozene_id"
ja bych to asi resil tak, ze vyuziju SHOW COLUMNS FROM tabulka, nazvy sloupcu si ulozil jako klice do pole a pak prochazel radky tabulky a do hodnot toho pole pak ukladal pole PK. samozrejme sekvence treba po 1000 a pak udelal update pro kazdej klic v te array.
19. 6. 2012 21:41:20
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776986
pes502
verified
rating uzivatele
(4 hodnocení)
19. 6. 2012 22:23:24
Nebo stáhni databázi a spusť to na localhostu, nastav neomezenou dobu běhu skriptu a za pár (desítek) minut to musí být
19. 6. 2012 22:23:24
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776985
hijack
verified
rating uzivatele
(1 hodnocení)
20. 6. 2012 08:30:20
Diky za rady a tipy, vim, ze to na prvni pohled vypada docela silene, tak to trochu priblizim - jedna se o tabulku, ktera je vytvorena z csv souboru a obsahuje statistiku nejakych sledovanych ukazatelu v cca 120 letech. Co radek, to ukazatel. Puvodne jsem si myslel, ze smazani toho posledniho neprazdneho sloupce v kazdem radku bude jednodussi v PHP/MySQL, ale zatim mi to nezafungovalo (na localhostu s neomezenou dobou behu jsem to zkousel, po hodine to ale uplne vytuhlo a neskoncilo zdaleka ani v pulce).
Asi bych to zkusil tedy trochu jinou cestou - upravou toho CSV souboru jeste pred jeho uploadem do MySQL. Nenapada vas jak timto zpusobem odstranit z radky v CSV posledni zaznam?
20. 6. 2012 08:30:20
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776984
naniccz
verified
rating uzivatele
(3 hodnocení)
20. 6. 2012 15:06:51
Pokud import CSV proběhne z PHP bez problému, a následně máte problém v PHP s tou tabulkou pracovat v reálném čase, tak je asi někde problém. Nemáte indexy na těch měněných sloupcích?
---------- Post added 20.6.2012 at 15:07 ----------
A podle NF by hodnoty ukazatelů patřily do jiné tabulky, než "seznam ukazatelů".
20. 6. 2012 15:06:51
https://webtrh.cz/diskuse/smazani-posledni-neprazdne-bunky-v-radku#reply776983
Pro odpověď se přihlašte.
Přihlásit