Ich möchte in allen Feldern aus allen Tabellen einer MySQL-Datenbank eine gegebene Zeichenfolge suchen, möglicherweise mit Syntax wie:
SELECT * FROM * WHERE * LIKE '%stuff%'
Ist es möglich, so etwas zu tun?
Ich möchte in allen Feldern aus allen Tabellen einer MySQL-Datenbank eine gegebene Zeichenfolge suchen, möglicherweise mit Syntax wie:
SELECT * FROM * WHERE * LIKE '%stuff%'
Ist es möglich, so etwas zu tun?
Wenn Sie phpMyAdmin installiert haben, verwenden Sie die Funktion "Suchen".
Ich habe es für Datenbanken mit bis zu 250 Tabellen/10 GB (auf einem schnellen Server) verwendet, und die Antwortzeit ist einfach unglaublich.
Sie können einen Blick auf die information_schema
Schema. Es enthält eine Liste aller Tabellen und aller Felder, die in einer Tabelle enthalten sind. Mit den Informationen, die Sie aus dieser Tabelle erhalten haben, können Sie dann Abfragen durchführen.
Die betroffenen Tabellen sind SCHEMATA, TABLES und COLUMNS. Es gibt Fremdschlüssel, so dass Sie genau nachvollziehen können, wie die Tabellen in einem Schema erstellt werden.
PHP-Funktion:
function searchAllDB($search){
global $mysqli;
$out = Array();
$sql = "show tables";
$rs = $mysqli->query($sql);
if($rs->num_rows > 0){
while($r = $rs->fetch_array()){
$table = $r[0];
$sql_search = "select * from `".$table."` where ";
$sql_search_fields = Array();
$sql2 = "SHOW COLUMNS FROM `".$table."`";
$rs2 = $mysqli->query($sql2);
if($rs2->num_rows > 0){
while($r2 = $rs2->fetch_array()){
$column = $r2[0];
$sql_search_fields[] = "`".$column."` like('%".$mysqli->real_escape_string($search)."%')";
}
$rs2->close();
}
$sql_search .= implode(" OR ", $sql_search_fields);
$rs3 = $mysqli->query($sql_search);
$out[$table] = $rs3->num_rows."\n";
if($rs3->num_rows > 0){
$rs3->close();
}
}
$rs->close();
}
return $out;
}
print_r(searchAllDB("search string"));
Das ist der einfachste Weg, den ich kenne. Wählen Sie Ihre DB in PHPMyAdmin aus, gehen Sie auf die Registerkarte "Suchen" und schreiben Sie, was Sie suchen wollen und wo Sie suchen wollen. Wähle alle Tabellen, wenn du die Wörter in allen Tabellen suchen willst. Dann "GO" und schauen Sie sich das Ergebnis an.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.