Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP] Masowe usuwanie z bazy.
Forum PHP.pl > Forum > Przedszkole
Qbexus
Znacie jakąś klasę, skrypt do masowego usuwania z bazy rekordów zawierających jakąś frazę?
Np. mam w tablicy zestaw słów typu sex, porn itp. i chcę teraz usunąć z bazy wszystkie rekordy z tabeli 'zwroty'
kadlub
delete from zwrot where pole_z_tabeli LIKE '%sex%' or pole_z_tabeli LIKE '%porn%'
toaspzoo
Kod
DELETE FROM `tabela` WHERE `kolumna` = 'wartosc'

albo z LIKE

Kod
DELETE FROM `tabela` WHERE `kolumna` LIKE  '%wartosc%'
Qbexus
Dzięki niby coś tak kombinowałem i mi nie działało już myślałem, że like nie działa przy delete ale jest ok. Jest jakiś naprawdę dobry kurs sql pod php online czy lepsza jakaś książka? Muszę się podszkolić.

Edit: a da si do tego jakoś wstawić implode jak tu? http://forum.php.pl/index.php?s=&showt...st&p=842022 czy tam frazy po przecinku?
thek
Dla wartości z porównaniem wartości w kolumnie można użyć Where kolumna IN (po przecinku słowa), ale z LIKE już tego się nie uzyska. Można próbować regexp, ale to będzie masakra dla bazy.
markonix
Można zamiast przecinka dać "OR" i masz tyle LIKE'ów ile chesz.
Domyślam się, że jest to operacja wykonywana raz na jakiś czas w celu oczyszczenia zawartości dlatego optymalizacja nie jest tu priorytetem.
Qbexus
Tak zgadza się w tym przypadku optymalizacja nie ma priorytetu ale przy okazji chciałem pogłębić temat. Dzięki wszystkim. Jeszcze jedno, da się sprawdzić czy dana operacja coś osunęła? Niezależnie od tego czy coś zostało usunięte z bazy czy nie dostaję true. A jak bym chciał sie dowiedzieć ile elementów zostało usuniętych?
markonix
Tak - mysql_affected_rows.
Qbexus
Niestety dostaje w wyniku Warning: "Warning: mysql_affected_rows() [function.mysql-affected-rows]: A link to the server could not be established in /home/qbexus/domains/......" Kod jest taki
  1. $wynik = $db->query($sgl);
  2. echo $fraza.' - '.$wynik.'<br \>';
  3. printf("Records deleted: %d\n", mysql_affected_rows());
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.