PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einträge in SQL ersetzen


DangerLes
05.01.2004, 10:23:01
In der Datenbank befindet sich eine Tabelle namens 'accountpos' mit den Spalten id, re_nr, date, user_id, auction_id, auction_title, description, value, closed. Jetzt müsste ich in der Spalte 'user-id' einige Einträge ersetzen. Da es sich um mehr als 450 Einträge handelt, stellt sich mir die Frage, ob man das per MySQL machen kann.
Da ich mich kaum mit SQL auskenne und auch kein idiotensicheres Tutorial dazu finden kann, hoffe ich, hier kann mir vielleicht jemand helfen.

chris17
05.01.2004, 10:58:16
Moin,

UPDATE accountpos SET user_id = REPLACE(user_id,'alter_wert','neuer_wert')
Evtl. könntest Du damit arbeiten, das hängt jetzt davon ab wie die Daten ausehen.

Gruss

chris17

DangerLes
05.01.2004, 11:08:11
Dann müsste die Abfrage also folgendermaßen aussehen?

UPDATE accountpos SET user_id = REPLACE(user_id,'21c41f4a120c1c0e2bbf6332c5085334','795961834212186034 7')

Dann ersetze ich alle Einträge 21c41f4a120c1c0e2bbf6332c5085334 in der Spalte 'user_id' mit 7959618342121860347 ?

chris17
05.01.2004, 11:17:21
Genau, das sollte funktionieren,
Mach Dir aber lieber eine "Kopie" der Tabelle und probier's einfach mal aus.

Du willst also zwei statische Wert austauschen, dann würde es auch ein klassisches UPDATE tun.
UPDATE accountpos SET user_id=1234 WHERE user_id=5678

DangerLes
05.01.2004, 11:33:36
Ich werde es mal versuchen, nachdem ich die Tabelle gesichert habe.

Vielen Dank erst mal für Deine schnelle Hilfe.

DangerLes
28.01.2004, 15:55:52
So, das oben diskutierte hat natürlich einwandfrei funktioniert.

Nun möchte ich eine solche Abfrage auf die ganze Datenbank anwenden. Und zwar soll diese Abfrage in der kompletten Datenbank nach dem Begriff DangerLes suchen und diesen durch Emanon ersetzen. Geht das überhaupt? Wenn ja, wie? Kann mir vielleicht jemand helfen?

chris17
28.01.2004, 16:46:56
Hi,
Nun möchte ich eine solche Abfrage auf die ganze Datenbank anwenden
Funktioniert im Prinzip genauso. Hast Du viele Tabellen?
So kannst Du die Tabellen in der DB auslesen, und das Update durchführen. Aber wie gehabt: Vorsicht beim Testen ;)

$res = mysql_list_tables("DB_NAME");
while ($row = mysql_fetch_row($res)) {
mysql_query("UPDATE ".$row[0]." SET user='Emanon' WHERE user='DangerLes'");
}

DangerLes
28.01.2004, 17:03:57
Ja, es sind 86 Tabellen, was man, glaube ich als viel ansehen kann.

Das heisst, ich müsste eine php-Datei mit dem Inhalt erstellen, diese hochladen und ausführen? Dann geht es also nicht per sql?

Gut, dann werde ich das mal testen. Vielen Dank für die erneute so schnelle Antwort.

EDIT:
So ganz scheint das ganze nicht zu funktionieren, denn es werden leider nicht alle Einträge ersetzt, aber den Rest mache ich dann manuell über phpmyadmin.

Danke jedenfalls für die Hilfe.