MySQL Summer einer Spalte, allerdings VARCHAR(200)
Hallo
Ich habe eine Tabelle mit 21 Einträgen und 22 Spalten. Abgesehen von der ID ist der Rest VARCHAR(200). Jetzt habe ich eine Spalte "Raumschiffe". Da sind aber nur integer werte, obwohl es VARCHAR ist. Meine Frage jetzt:
Wie kann ich alle Raumschiffe von allen 21 Einträgen zusammenzählen? Mit PHP und MySQli, also der oo Variante.
Danke schon jetzt
mfg
TByte
Antwort schreiben
Antwort 1 von gresti vom 24.05.2021, 22:15 Options
Hi TByte,
das geht nicht mit den normalen Sql-Mitteln. Das widerspräche auch dem relationalen Ansatz. (na Mittel gibt es da auch, aber . . grrr)
Ich bin auch Entwickler von Datenbanken auf der Basis MySql und . . .
Eine Datenbank wird auf den Papier entworfen. Dort ist das Nach(Denken) über Abhängigkeiten und viel mehr erstmal angesagt.
Diese Phase kann sehr lange dauern und viele der Entwürfe landen im Mülleimer.
Also lieber Tbyte organisier einfach mal die Strtuktur von deiner Datenbank auf Papier.
lg
gresti
Antwort 2 von TByte vom 25.05.2021, 15:52 Options
Hallo
Das hab ich bereits elerdigt, die Datenbank läuft sogar schon und alles ist perfekt. Nur will ich einfach nur die Summe der Werte einer Spalte haben, ohne alles manuell zu machen.
Danke,
mfg
TByte
Antwort 3 von MixMax vom 25.05.2021, 16:20 Options
wenn du sicher bist das in der Spalte nur Integerwerte kommen, ist
es eigentlich sehr unsinnig da z.B. für 200000 ein 8 Byte langen
String (7 für den text und 1 Byte wo drin steht das der String 7
Zeichen lang ist) zu speichern, während die Zahl mit einer 4 Byte
Zahl als Zahl gespeichert werden kann.
Vor allem kann die Datenbank mit Strings nicht Addieren, die
Chance das es zu Fehlern kommt oder Abfragen beim einer
Manuellen Aufsummierung plötzlich mehrere Sekunden oder
Minuten dauern ist sehr hoch.
mach Ggfs eine 32 bit oder 64bit Ganzzahl da draus...
(32Bit geht bis 4Milliarden ca, bzw 2Milliarden und -2Milliarden (+/-
2000'000'000)
eine 64 bit geht bis... ehm 16EB bzw +/-8 EB +/-
(8'000'000'000'000'000'000)
Antwort 4 von TByte vom 25.05.2021, 20:32 Options
Hallo
Ok, danke, werd ich machen.
Nur wie addier ich dann? Dafür muss MySQL doch funktionen bereitstellen, oder?
MfG
TByte
Antwort 5 von Supermax vom 25.05.2021, 21:23 OptionsLösung
Die Summe der Feldinhalte berechnest du mit der Funktion SUM():
SELECT SUM(spaltenname) FROM tabelle WHERE bedingungen
siehe auch
mySQL Handbuch
Antwort 7 von TByte vom 27.05.2021, 15:09 Options
Hallo
Vielen dank!
MfG
TByte