13. august 2005 - 23:48Der er
11 kommentarer og 1 løsning
Søg og Erstat i MySQL?
Hej
Jeg har en stor tabel (ca. 200.000 rækker) desværre er nogle af data'erne forkerte i en af kolonnerne, og jeg har derfor brug for en slags søg og erstat funktion, som findes i bl.a. notepad.
Der kunne fx. stå: index.php?fisk=aborre&fiskestang=5
her skal &fiskestang=t slettes. Men jeg ved ikke hvad tallet er. Så man kan sige at at &fiskestang= og alt efter skal slettes.
Men hvordan kan jeg mon gøre det? Lave et dump, og lade et windows-program om det? Hvilket?
Serveren kører PHP, hvis det kan løses på den måde
Nu har jeg testet det, men det virker nu ikke helt efter planen...
Min kode: <?php require("filer/connect_counter.php"); mysql_query("UPDATE test SET side = SUBSTRING(side, 1, LOCATE('&PHPSESSID=', side))"); mysql_close(); ?>
Lige nu sletter den alle felter hvor "&PHPSESSID=" ikke står i, og dem det står i, sletter den kun "&PHPSESSID=" altså ikke &'et.
$fyord = "&PHPSESSID="; mysql_query("UPDATE test SET side = SUBSTRING(side, 1, LOCATE('&PHPSESSID=', side)) WHERE side LIKE '%$fyord%'");
nu finder den kun de rigtige steder og sletter, men den erstatter &PHPSESSID=584539hf9734ft47fb3tfg med et &, så det kommer til at stå sidst. Det skal også væk!
Det er godt nok utroligt at det ikke tager mere tid at søge sådan en stor tabel igennem. Det tog jo ikke engang så lang tid, at man kunne se siden blinkede.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.