Probleme mit Zeichenkette nach Import von Mysql

Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 13:07:47 von Walde

Habe das Problem das ich Tabellen durch einen TXT/CSV import in die
Mysql (Ver4) Datenbank reinhole und die Preis sind im format X.XXX,XX
angegeben brauche aber in der Weiteren Verarbeitung XXXX.XX zum Rechnen
und auch für den Shopimport wie kann ich den Punkt löschen ???? das
Komma kann ich ersetzen durch

UPDATE bcom.bcompreis SET
Preis = REPLACE( Preis, ',' , '.' );

Aber den Punkt wie Kriege ich den aus dem Weg ?

MfG Dirk

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 13:31:30 von Thomas Rachel

Walde wrote:
^Da fehlt was.

> Habe das Problem das ich Tabellen durch einen TXT/CSV import in die
> Mysql (Ver4) Datenbank reinhole und die Preis sind im format X.XXX,XX
> angegeben brauche aber in der Weiteren Verarbeitung XXXX.XX zum Rechnen
> und auch für den Shopimport wie kann ich den Punkt löschen ???? das
> Komma kann ich ersetzen durch
>
> UPDATE bcom.bcompreis SET
> Preis = REPLACE( Preis, ',' , '.' );
>
> Aber den Punkt wie Kriege ich den aus dem Weg ?

Genauso - aber vorher.

Du ersetzt (REPLACE) den Punkt durch nichts ('').

Also:

UPDATE bcom.bcompreis SET Preis = REPLACE( REPLACE( Preis, '.' , '' ), ',' ,
'.' );

Allerdings wäre es (je nach Anzahl der Datensätze) evtl. ratsam, hier mit
einer temporären Tabelle zu arbeiten und beim Kopieren in die permanente
Tabelle dann das REPLACE durchführen.

Falls Du den Import nicht mit LOAD DATA INFILE, sondern mit selbst
generierten Queries ausführst, geht das auch direkt beim Insert...

HTH,

Thomas
--
Viele Probleme erledigen sich von selbst, wenn man sie nicht dabei stört.
(Ernst Waldbrunn)

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 13:57:32 von Walde

Danke Thomas,

hatte da noch einen Einfall habe mal einen zweiten batch.sql Script
geschrieben und Siehe da es geht. Zudem Habe ich die ' durch " ersetzt.
Kann ja sein das unser Linux (Debian) Webserver nicht ganz echt ist mit
dem MySQL 4 aber jetzt läuft es und das mit der Performens ist ok ist
ein unser Server der sonst nichts zu tun hat.


UPDATE bcom.bcompreis SET
Preis = REPLACE ( Preis, "." , ";");
UPDATE bcom.bcompreis SET
Preis = REPLACE ( Preis, ";" , "");
UPDATE bcom.bcompreis SET
Preis = REPLACE ( Preis, "," , ".");

PS: Ich bin mir imklaren das erst . nach ; und dan nach nicht nicht
sauber ist habe ich auch nur zum Test reingeschrieben um zu sehen ob das
Script überhaut läuft.

MfG Dirk


Thomas Rachel schrieb:
> Walde wrote:
> ^Da fehlt was.
>
>
>>Habe das Problem das ich Tabellen durch einen TXT/CSV import in die
>>Mysql (Ver4) Datenbank reinhole und die Preis sind im format X.XXX,XX
>>angegeben brauche aber in der Weiteren Verarbeitung XXXX.XX zum Rechnen
>>und auch für den Shopimport wie kann ich den Punkt löschen ???? das
>>Komma kann ich ersetzen durch
>>
>>UPDATE bcom.bcompreis SET
>>Preis = REPLACE( Preis, ',' , '.' );
>>
>>Aber den Punkt wie Kriege ich den aus dem Weg ?
>
>
> Genauso - aber vorher.
>
> Du ersetzt (REPLACE) den Punkt durch nichts ('').
>
> Also:
>
> UPDATE bcom.bcompreis SET Preis = REPLACE( REPLACE( Preis, '.' , '' ), ',' ,
> '.' );
>
> Allerdings wäre es (je nach Anzahl der Datensätze) evtl. ratsam, hier mit
> einer temporären Tabelle zu arbeiten und beim Kopieren in die permanente
> Tabelle dann das REPLACE durchführen.
>
> Falls Du den Import nicht mit LOAD DATA INFILE, sondern mit selbst
> generierten Queries ausführst, geht das auch direkt beim Insert...
>
> HTH,
>
> Thomas

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 14:15:52 von Frank Schenk

Walde wrote:
> Danke Thomas,
>=20
> hatte da noch einen Einfall habe mal einen zweiten batch.sql Script=20
> geschrieben und Siehe da es geht. Zudem Habe ich die ' durch " ersetzt.=
=20
> Kann ja sein das unser Linux (Debian) Webserver nicht ganz echt ist mit=
=20
> dem MySQL 4

Nicht ganz echt?
Häh?


Frank

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 15:01:15 von Christian Kirsch

Frank Schenk schrieb:
> Walde wrote:
>> Danke Thomas,
>>
>> hatte da noch einen Einfall habe mal einen zweiten batch.sql Script
>> geschrieben und Siehe da es geht. Zudem Habe ich die ' durch " ersetzt.
>> Kann ja sein das unser Linux (Debian) Webserver nicht ganz echt ist mit
>> dem MySQL 4
>
> Nicht ganz echt?
> Häh?

VerMutlich meint Er irgendwie da's das dass Wasserzeichendingens Von
seinem Server quasi einstückweit abgelaufen ist. Oder mit s,o ähnlich.
MySQL!

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 17:37:23 von Thomas Rachel

Walde wrote:

> Danke Thomas,
>
> hatte da noch einen Einfall habe mal einen zweiten batch.sql Script
> geschrieben und Siehe da es geht. Zudem Habe ich die ' durch " ersetzt.

Warum? Standard-SQL ist das '-Zeichen; " ist nur eine MySQL-Erweiterung.

> Kann ja sein das unser Linux (Debian) Webserver nicht ganz echt ist mit
> dem MySQL 4

Hä?

> aber jetzt läuft es und das mit der Performens ist ok ist
> ein unser Server der sonst nichts zu tun hat.
>
>
> UPDATE bcom.bcompreis SET
> Preis = REPLACE ( Preis, "." , ";");
> UPDATE bcom.bcompreis SET
> Preis = REPLACE ( Preis, ";" , "");
> UPDATE bcom.bcompreis SET
> Preis = REPLACE ( Preis, "," , ".");

Und was machst Du, wenn Du das Skript irrtümlich zweimal laufen läßt, oder
neue Daten hinzukommen?


> PS: Ich bin mir imklaren das erst . nach ; und dan nach nicht nicht
> sauber ist habe ich auch nur zum Test reingeschrieben um zu sehen ob das
> Script überhaut läuft.

Ah, ok. Das heißt, das obige wird so nicht in den Produktivbetrieb gehen?
Ansonsten würdest Du Dir sicherlich Probleme einhandeln.

Temporäre Tabelle ist IMHO keine wirklich schlechte Idee.


Thomas

> MfG Dirk
>
>
> Thomas Rachel schrieb:

Warum TOFUst Du? http://learn.to/quote
--
Neueste Meldung: Das Geld wird abgeschafft. Ich zum Beispiel hab schon
gar keins mehr, viele Bekannte auch nicht.

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 18:03:23 von Sven Paulus

Christian Kirsch wrote:
> VerMutlich meint Er irgendwie da's das dass Wasserzeichendingens Von
> seinem Server quasi einstückweit abgelaufen ist. Oder mit s,o ähnlic=
h.

Um mal ueber Anwesende zu laestern: Ich frage mich, ob Leute, die
real derart schreiben und von ihren Mitmenschen erwarten, dass sie
dies verstehen, auch mit dem gleichen Ansatz Computerprogramme
verfassen ("ach, auf eine Klammer mehr oder weniger kommt es nicht
an, der muss doch schon wissen, was ich meine!").

Re: Probleme mit Zeichenkette nach Import von Mysql

am 17.08.2006 18:09:50 von Christian Kirsch

Sven Paulus schrieb:
> Christian Kirsch wrote:
>> VerMutlich meint Er irgendwie da's das dass Wasserzeichendingens Von
>> seinem Server quasi einstückweit abgelaufen ist. Oder mit s,o ähnlich.
>
> Um mal ueber Anwesende zu laestern: Ich frage mich, ob Leute, die
> real derart schreiben und von ihren Mitmenschen erwarten, dass sie
> dies verstehen, auch mit dem gleichen Ansatz Computerprogramme
> verfassen ("ach, auf eine Klammer mehr oder weniger kommt es nicht
> an, der muss doch schon wissen, was ich meine!").

Nö. Da quakt ja der Compiler. Dann macht man eben 'ne Klammer hin oder
ein Semikolon wech, bis der Ruhe gibt. Im RL gilt aber lustigerweise
derjenige als Querulant, der darauf beharrt, ein Fragender habe sich
verständlicher Syntax, Semantik, Ortographie und Grammatik zu
befleißigen. Wie Du schon vermutetest: Schließlich könnte sich der
Gefragte ja gefälligst die Mühe machen, in dem Gestammel einen Sinn
(welchen auch immer) zu entdecken.

Meine Toleranz gegenüber sowas ist inzwischen futsch.