![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
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' |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 548 Pomógł: 105 Dołączył: 4.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
delete from zwrot where pole_z_tabeli LIKE '%sex%' or pole_z_tabeli LIKE '%porn%'
Ten post edytował kadlub 8.06.2011, 17:37:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
Kod DELETE FROM `tabela` WHERE `kolumna` = 'wartosc' albo z LIKE Kod DELETE FROM `tabela` WHERE `kolumna` LIKE '%wartosc%'
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
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? Ten post edytował Qbexus 8.06.2011, 18:14:06 |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
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.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
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?
Ten post edytował Qbexus 9.06.2011, 10:25:46 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Tak - mysql_affected_rows.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
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
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 14:19 |