Seite 1 von 1
MySQL - Daten in einer DB ändern
Verfasst: 01.11.2004 18:49
von Xelos
Hallo,
Ich habe eine Tabelle in einer Datenbank, in der so ca 2000 Bilder sind.
Mehr wie die Hälfte davon haben die Endung .jpg
Nun möchte ich die Dateinamen lassen, und die Endung .jpg in .gif ändern, da ich die .jpg Bilder durch durchsichtige .gif Bilder ersetzen will.
Nun könnte man ja hingehen und diese Tabelle per phpMyAdmin ändern. So wäre man dann in ein paar Monaten schon fertig
Kennt jemand evtl. einen einfacheren Weg?
Gruß
Xelos
Verfasst: 01.11.2004 19:24
von Dennis63
Ich weiß nicht, ob MySQL das selber kann, aber wie wäre es, mit einem Querry alle Namen auszulesen, die auf .jpg enden. Dann mit PHP diese Liste bearbeiten, so daß .jpg zu .gif wird und dann per PHP 1000 Querrys erzeugen und ausführen?
Grüße
Dennis
Verfasst: 01.11.2004 20:59
von Xelos
Hallo Dennis,
dass wäre sicherlich eine gute Möglichkeit.
Aber leider weiss ich nicht, wie das geht. Bin noch recht neu mit php.
Gruß
Xelos
Verfasst: 01.11.2004 23:00
von Dennis63
Man kann es auch ganz ohne PHP machen.
Mit phpMyAdmin z.B.
Code: Alles auswählen
SELECT
CONCAT(
"UPDATE lieder SET liedname='",
LEFT(liedname,LENGTH(liedname)-4),
".gif' WHERE liedname = '",liedname,"';")
AS QUERRY
FROM lieder
WHERE liedname LIKE '%.jpg'
Tabelle "lieder" und Spalenname "liedname" natürlich anpassen. Das ergebnis wird dann so aussehen:
Code: Alles auswählen
UPDATE lieder SET liedname='test2.gif' WHERE liedname = 'test2.jpg';
UPDATE lieder SET liedname='test5.gif' WHERE liedname = 'test5.jpg';
Und das kann man wieder per phpMyAdmin ausführen, was dann alles ändert.
Grüße
Dennis
Verfasst: 01.11.2004 23:27
von Xelos
Habe ich gemacht, bekomme aber eine Fehlermeldung beim ausführen des erzeugten Codes:
Code: Alles auswählen
INSERT INTO `products`
VALUES (
'UPDATE products SET products_image=''10.gif'' WHERE products_image = ''10.jpg'';'
)
MySQL meldet:
#1136 - Column count doesn't match value count at row 1
Hast du noch ne Idee hierzu?
Kann es sein, dass der erzeugte Code davon ausgeht, dass überall .jpg vorhanden ist? Es ist ja wie gesat ein gemisch aus .gif und .jpg...beides ist in der Tabelle vorhanden.
Gruß
Xelos
Verfasst: 02.11.2004 02:01
von Blutgerinsel
Mal blöd gefragt weshalb machst du nicht ein Update Statement und suchst nach den letzten 3 Zeichen im Text und ersetzt diese durch die Alternative.....
Sofern der die File gleich sind lässt sich das mit einem Statment erledigen......
Und warum zum Teufel fügst du ein Update in ein Insert ein??? verrückt?
Die Stringfunktionen von mysql gibt es nicht zum Spass

Schon mal an ein Replace in Verbindung mit Substring gedacht?
Dann noch ein passender Where Ausschluss und alles wird upgedatet....
->
http://dev.mysql.com/doc/mysql/de/Strin ... ml#IDX1141