2011-01-16 5 views
0

Meine Kommentar-Datenbank wurde gerade mit über 11.000 Spam-Einträgen geknallt. Ich versuche eine Möglichkeit zu finden, einen Eintrag mit einem bestimmten Wort zu löschen. Es gibt ungefähr 12 Spalten pro Eintrag und ich möchte alle diese Spalten durchsuchen und wenn es irgendwelche der "Schlüsselwörter" dort gibt, dann lösche diese Reihe. Etwas wie:Zeile löschen, wenn eine Zeichenfolge in einer beliebigen Spalte gefunden wird

Bitte helfen, damit ich 11.000 Zeilen nicht löschen muss.

+0

whats 'column1 = 'blabla-xan'' und' column2 =' axs-blabla'', willst du diese Zeile löschen oder nicht? –

Antwort

4

Sie die Spalten alle zusammen verketten könnten:

$sql = "DELETE FROM comments WHERE concat(column1,column2,column3) like "%xanaxs%"; 
+0

Schön. Ich wusste das nicht. –

0

ry dies:

"DELETE FROM comments WHERE CONCAT_WS(colum1,column2,column3) LIKE '%xanaxs%'" 
+0

Cybernate, hatte gerade eine Frage, stimmt die% &% auf beiden Seiten einer genauen Übereinstimmung? Fall und alles? – OldWest

+0

Nein% ist ein Platzhalter in der Suche, daher würde die Abfrage alle Zeilen zurückgeben, in denen sich die Xaxaxwerte irgendwo im Spaltenwert befinden. – Chandu

1

Von einer strikten SQL Sicht, würden Sie es eins nach dem anderen zu tun haben, wie in: DELETE FROM comments WHERE column1 LIKE '%first_string%'

Da Sie jedoch in PHP sind, können Sie es pro Spalte und Schlüsselwort Schleife, solange Sie jedes in einem Array setzen.