Einfach, dachte ich. Mein Test: < /p>
Code: Select all
SELECT ID, Price, ROUND(Price, 2) as Fixed
FROM table
WHERE Price REGEXP '[0-9]+.?[0-9]*'
< /code>
Ausgabe: < /p>
ID Price Fixed
1001332 60.31 60.31
1001334 66 66.00
1001336 32.2879 32.29
1001338 66 66.00
1001340 42.2 42.20
1001342 42.2 42.20
1001344 42.2 42.20
1001346 42.2 42.20
1001348 29.54 29.54
1001350 31.07 31.07
...
< /code>
Ich dachte, ich würde es rippen lassen: < /p>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE Price REGEXP '[0-9]+.?[0-9]*'
< /code>
Ausgabe:
0 Fehler. 0 Zeilen betroffen. < /P>
Ich habe einige andere Varianten ausprobiert: < /p>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE Price ""
< /code>
Ausgabe:
0 Fehler. 0 Zeilen betroffen. < /P>
UPDATE table
SET Price = ROUND(Price, 2)
WHERE 1
< /code>
Ausgabe:
Abgeschnittener falscher Doppelwert: ''
(Wegen dieser leeren Werte) < /p>
brauche ich eine Unterabfrage?UPDATE table AS t1
SET Price = (
SELECT ROUND(Price, 2)
FROM table AS t2
WHERE t1.ID = t2.ID
)
WHERE Price REGEXP '[0-9]+.?[0-9]*'
andere Fragen implizieren, dass mein erstes Update funktioniert. an diesem Punkt erschöpft ...