MYSQL-Spalte punkte entfernen und zu INT wandeln

DonDemf

Erfahrenes Mitglied
Hallo Leute,
momentan habe ich eine Spalte namens "wert" in der varchar werte eingetragen sind. die werte stehen dort beispielweise als "10.000.000". Nun möchte ich gerne in jeder Zeile der Tabelle die punkte (.) aus der spalte "wert" entfernen, damit ich diese anschließen in eine INT spalte wandeln kann. Somit kann ich einfacher rechnen.

Habt ihr eine Idee wie ich das bewerkstellige?
Ziel ist es also anstatt "1.000.000" nur noch "1000000" dort stehen zu haben.


Ist das überhaupt Möglich?

Lg
 
Du müsstest eine zweite Spalte erstellen die den Datentyp INTEGER hat und dann per SQL-Anweisung alle Werte aus "wert" in die neue Spalte "kopieren". Um wirklich Integer-Werte zu erreichen könntest Du die Werte mit +0 verrechnen.

Code:
UPDATE tabelle SET neuwert = wert + 0

Alternativ: String-Replace.
 
Nope. Ein REPLACE() muss her um die Punkte zu entfernen und ein CAST() um es in ein Integer zu schreiben
SQL:
SELECT CAST(REPLACE('1.000.000', '.', '') AS SIGNED)
 
Zuletzt bearbeitet von einem Moderator:
Also wenn ich
PHP:
SELECT CAST(REPLACE('1.000.000', '.', '') AS SIGNED)
verwende, kann ich nachträglich dann die spalte wert als INT deklarieren?
 
Das war nur ein Beispiel.

Wenn du sauber arbeiten willst, solltest das in 4 Schritten machen

1) Der Tabelle eine Integer-Spalte hinzufügen
2) Mittels einem UPDATE und CAST(REPLACE(my_field, '.', '') AS SIGNED) die Daten in die neue Spalte schreiben
3) Die alte spalte löschen
4) Die neue Spalte mit ALTER TABLE .... CHANGE .... auf den alten Namen umbennen.

Nachtrag: Hab das ganze mal zu den Datenbanken verschoben....
 

Neue Beiträge

Zurück