- darKSidE00225.01.2012 17:58
*bitte löschen*
*bitte löschen*
Geändert von darKSidE002 (27.02.2012 um 02:54 Uhr)
-
- Beiträge
- 77
- Registriert seit
- 11.08.2005
- Ort
- nähe Hamburg
- Alter
- 35
25.01.2012 18:03AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Hallo.
Ich habe solche kleinere Änderungen meist wie folgt gelöst:
- DB herunterladen via z.B. phpMyAdmin
- DB mit Notepad öffnen
- Strg+H (für Ersetzen)
- Obere Zeile alten Text - untere neuer Text
- DB wieder hochladen
Wenn es nicht direkt an einem Live System geändert werden soll, so finde ich diese Methode die Sicherste. Gibt aber bestimmt noch andere.Mit freundlichem Gruß
Christoph Thiemann
- 25.01.2012 18:22
AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Viel zu umständlich...
Zu deutsch:Code:UPDATE `table` SET `column` = REPLACE(`column`, '1.de', '2.de') WHERE `cloumn` LIKE '%1.de%';
Alle Zeilen, in denen "1.de" in der Spalte "column" vorkommt, wird in dieser Spalte "1.de" durch "2.de" ersetzt. Je nach gesetzten Fulltext Index und genereller Länge kann es unter Umständen etwas dauern.Geändert von Markus [mgw-media.de] (25.01.2012 um 18:24 Uhr)
mgw-media.de - web solutions | Breiter Weg 40 | DE-98574 Schmalkalden
Hotline: 0700 MGWMEDIA | Internet: www.mgw-media.de | E-Mail: mail@mgw-media.de
-
- Beiträge
- 9
- Registriert seit
- 25.02.2011
25.01.2012 18:32AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Nein das geht nicht mit SQL.
Du musst das mit einem Skript machen z.b. php
<?php
$result = mysql_query ('SELECT * FROM table WHERE column LIKE "%1.de" ');
while ( $res = mysql_fetch_assoc($result) ) {
$text = str_replace ('1.de', '2.de', $res['column']);
$result2 = mysql_query( 'UPDATE table SET column = "'.$text.'" WHERE id = '.$res['id'] );
if ( !$result2 ) {
$error .= 'Fehler bei ID: '.$res['id'].' SQL:';
$error .= mysql_error();
$error .= "\n";
}
}
file_put_contents($error):
?>
Hierbei musst Du natürlich id ersetzen durch einen UNIQUE Index.
Gruß
der Snooops
EDIT: Parse error korrigiert.Geändert von Snooops (25.01.2012 um 18:34 Uhr)
-
- Beiträge
- 9
- Registriert seit
- 25.02.2011
25.01.2012 18:35AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Huch mein post ist verschwunden... also nochmal. Ich würde es mit PHP machen weil ich glaube das es mit SQL nicht geht. MySQL ist eine Datenbank kein Datenmanipulator :D
<?php
$result = mysql_query ('SELECT * FROM table WHERE column LIKE "%1.de" ');
while ( $res = mysql_fetch_assoc($result) ) {
$text = str_replace ('1.de', '2.de', $res['column']);
$result2 = mysql_query( 'UPDATE table SET column = "'.$text.'" WHERE id = '.$res['id'] );
if ( !$result2 ) {
$error .= 'Fehler bei ID: '.$res['id'].' SQL:';
$error .= mysql_error();
$error .= "\n";
}
}
file_put_contents($error):
?>
- 25.01.2012 18:37
AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Geht klar mit MySQL, und zwar so, wie ich es da oben beschrieben habe. Deine Lösung verursacht viel mehr Queries auf die eine einzige Datenbank, was den Server bei der Menge an Artikeln wohl schnell in die Knie zwingen kann.
Dein Update-Query wird ziemlich schnell einen Fehler werfen, denn da fehlt zum einen ein Single Quot, und zum anderen wird das Query fehlschlagen, wenn im Text Quotes vorkommen. Die Variable $text sollte daher noch escaped werden, zum Beispiel mit addslashes().
Edit: Im zweiten Post von dir ist das Single Quote nun da, das escape-Problem bleibt trotzdem.
Escape:
http://de2.php.net/manual/en/functio...ape-string.php
Mit einem UPDATE oder INSERT machst du nichts anderes als Daten in der Datenbank zu manupulieren. Meine Lösung mit REPLACE macht nichts anderes.
http://dev.mysql.com/doc/refman/5.1/...functions.html
http://www.cix-blog.de/thm/MySQL-Rep...f-die-SchnelleGeändert von Markus [mgw-media.de] (25.01.2012 um 18:40 Uhr)
mgw-media.de - web solutions | Breiter Weg 40 | DE-98574 Schmalkalden
Hotline: 0700 MGWMEDIA | Internet: www.mgw-media.de | E-Mail: mail@mgw-media.de
- darKSidE00228.01.2012 07:09
AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Ich hab die texte in den apexx-tabellen nun ganz einfach folgendermaßen ersetzt & verändert:
UPDATE [tabellenname] SET [feldname]=REPLACE([feldname], "url1.de", "url2.de");
URL1 sollte mit der URL2 ersetzt werden. feldname ist die text-tabelle und tabellenname lautet: apx_news
Trotzdem danke, ging ruck zuck!
- 01.02.2012 11:38
AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Ja ich glaube Du hast sogar die schnellste Variante gewählt .. denn ich glaube fast dass das WHERE `cloumn` LIKE '%1.de%'; mehr Zeit beansprucht als das "ersetzen" von nicht vorhandenen 1.de in den übrigen Zeilen ;)
Keep it simple.Günther Leitgeb, Ing.
Light-Gap.net Websolutions - http://www.light-gap.net
Felsgasse 5/10 1110- Wien, Österreich
- 04.02.2012 19:40
AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
mgw-media.de - web solutions | Breiter Weg 40 | DE-98574 Schmalkalden
Hotline: 0700 MGWMEDIA | Internet: www.mgw-media.de | E-Mail: mail@mgw-media.de
-
- Beiträge
- 1.120
- Registriert seit
- 14.06.2004
- Ort
- St. Augustin
11.02.2012 17:15AW: Bestimmten Inhalt einer SQL Tabelle ersetzen
Lustig wird es, wenn man serialisierte Arrays in der Datenbank hat (z.B. bei Wordpress). Wenn sich die Laenge der Domains aendert, kommt man um ein kleines Script nicht herum.
M. Bode Internetlösungen | www.bocombo.de | Mumble-Sponsoring | kostenloses CMS-Hosting | Die Preise sind gemäß §19 Abs.1 UStG von der Umsatzsteuer befreit. Angebote sind unverbindlich und gelten maximal 10 Tage ab Postingdatum.
Ähnliche Themen
-
DB Confixx -> Tabelle Backup -> Spalte DST weiss einer wozu gut?
Von confixx_Hotzi im Forum 3.x AllgemeinAntworten: 0Letzter Beitrag: 18.04.2008, 11:51 -
Exim - einer bestimmten Domain eine andere IP/Hostname zuweisen
Von Henry.Hill im Forum Quick-TippsAntworten: 0Letzter Beitrag: 29.03.2008, 15:04 -
MySQL Synchronisation einer Tabelle
Von SllnD im Forum Webserver (Software): Linux, Unix, etc.Antworten: 6Letzter Beitrag: 16.03.2006, 15:24 -
mySQL: Lineares Abarbeiten einer Tabelle
Von telefoni im Forum Script ServerseitigAntworten: 5Letzter Beitrag: 01.10.2005, 14:56 -
Seltsames Problem mit IE & einer Tabelle
Von dus-web im Forum WebdesignAntworten: 3Letzter Beitrag: 08.05.2005, 19:02

Zitieren
Im Ausschreibungssystem wurde durch einen Benutzer eine neue Ausschreibung angelegt. Details zu dieser Ausschreibung finden Sie online im Marktplatz. (Dies ist ein automatisches Posting....
Microsoft SQL Datenbank