Hi,
da es kein extra SQL Forum gibt, bin ich hoffentlich hier
richtig.
jein… Datenbanken allgemein triffts imho besser - aber hier ist auch oft fundiertes mysql Wissen zu finden…
Ich hätte da mal eine Frage zu einer MySQL Datenbank. Gibt es
sowas
wie „suchen und ersetzen“ als SQL Befehl?
ich persönlich kenne keinen, aber ein kleines Script sollte es ja auch tun…
Folgendes Problem: in meiner Tabelle stehen Links, die so
ausssehen:
http;//www.meine-domain.de/filme.php?Filmtitel=Rambo.
Da sich jetzt das Verzeichnis geändert hat, müsste ich nun bei
allen
Filmen nur das http;//www.meine-domain.de/ rauslöschen, der
Rest,
also /filme.php?Filmtitel=Aliens muss drin bleiben. Gibt es da
einen
SQL Befehl? Habe keine Lust, immer wenn sowas passiert, die
Tabelle
als CSV zu exportieren und im Textverarbeitungsprogramm zu
bearbeiten, das muss doch irgendwie direkter gehen. Leider
stehe ich
noch am Anfang meines SQL Wissens.
hier ein codebeispiel wie Du das wohl schnell mit einem reinigungsscript tun können solltest (quick’n’dirty -> nicht zwangsläufig fehlerfrei)
// Datenbankverbindung aufbauen...
$table = "meintabellenname";
$spaltenname = "name des linkaddy feldes";
$addy = "http;//www.meine-domain.de/";
$sql = "SELECT id, $spaltenname FROM $table WHERE $spaltenname LIKE '$addy%'";
$query = mysql\_query($sql) or die("Fehler beim abarbeiten des sql strings
$sql");
while ($result = mysql\_fetch\_array($result))
{
$newstring = str\_replace($addy,"/",$result[$spaltenname]);
//hier evtl erst mal überprüfen ob alles richtig gemacht wird bevor das update vorgenommen wird
$tmpsql = "UPDATE $table SET $spaltenname = '$newstring' WHERE id='$result[id]'";
mysql\_query($tmpsql) or die("Fehler beim updaten ($newsql)");
}
HTH