# MYSQL-Spalte punkte entfernen und zu INT wandeln



## DonDemf (2. Januar 2012)

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


----------



## threadi (2. Januar 2012)

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.


```
UPDATE tabelle SET neuwert = wert + 0
```

Alternativ: String-Replace.


----------



## Yaslaw (2. Januar 2012)

Nope. Ein REPLACE() muss her um die Punkte zu entfernen und ein CAST() um es in ein Integer zu schreiben

```
SELECT CAST(REPLACE('1.000.000', '.', '') AS SIGNED)
```


----------



## DonDemf (2. Januar 2012)

Also wenn ich 
	
	
	



```
SELECT CAST(REPLACE('1.000.000', '.', '') AS SIGNED)
```
  verwende, kann ich nachträglich dann die spalte wert als INT deklarieren?


----------



## Yaslaw (3. Januar 2012)

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....


----------

