jensgebken
Goto Top

SQL Tabelle - Werte bearbeiten

Hallo Gemeinschaft

habe eine Tabelle, die so aussieht
meta_id___post_id____meta_key___________________meta_value
38144_____2147_______price_______________________47.243
41456_____2305________payment_method_title___Rechnung

usw.

nun möchte ich bei allen Einträgen meta_key=price, dass die Nachkommastellen aus 2 Stellen gekürzt wird

Content-ID: 5306433529

Url: https://administrator.de/forum/sql-tabelle-werte-bearbeiten-5306433529.html

Ausgedruckt am: 02.04.2025 um 00:04 Uhr

5175293307
Lösung 5175293307 12.01.2023 aktualisiert um 10:47:40 Uhr
Goto Top
UPDATE TabelleXYZ
SET meta_value = round(meta_value,2)
WHERE meta_key = 'price';  

https://www.w3schools.com/sql/sql_update.asp
em-pie
Lösung em-pie 12.01.2023 um 10:57:55 Uhr
Goto Top
Moin,

Und als nächstes mal noch den Datentyp der Spalte auf „Decimal(20,2)“ ändern…
jensgebken
jensgebken 12.01.2023 um 11:13:23 Uhr
Goto Top
Lieben Dank für die Info´s
ukulele-7
ukulele-7 12.01.2023 um 11:22:37 Uhr
Goto Top
Zitat von @em-pie:

Und als nächstes mal noch den Datentyp der Spalte auf „Decimal(20,2)“ ändern…
Eher nicht, ist ja EAV. Die Spalte hält eben nicht nur numerische Werte sondern auch Zeichenketten. Das bedeutet aber natürlich das theoretisch "kaputte" Datensätze (meta_key = 'price' aber meta_value nicht numerisch) dazu führen können das das UPDATE scheitert - aber das findet man dann schon raus face-wink
em-pie
em-pie 12.01.2023 um 11:32:41 Uhr
Goto Top
@ukulele-7
Hast recht…. Hab daran nicht gedacht.

Bzgl des Updates: das könnte man ja „filtern“:
WHERE ISNUMERIC(meta_value) = 1
ukulele-7
ukulele-7 12.01.2023 um 11:39:40 Uhr
Goto Top
Zitat von @em-pie:

Bzgl des Updates: das könnte man ja „filtern“:
WHERE ISNUMERIC(meta_value) = 1
Völlig richtig. Ich gehe aber schwer davon aus das die Integrität der Daten in der Anwendung geregelt wird, das ist leider häufig so. Dann kann man davon ausgehen das das richtig ist solange man nicht selbst was zerschossen hat. Und vermutlich geht es hier ja eher um eine einmalige Sache, wenn das UPDATE in einen Fehler läuft findet man einfach das Problem und korrigiert es.