Heim >Datenbank >MySQL-Tutorial >Wie kann ich durch Kommas getrennte Dezimalwerte in einer MySQL 4-Datenbankspalte summieren?

Wie kann ich durch Kommas getrennte Dezimalwerte in einer MySQL 4-Datenbankspalte summieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-27 14:46:29583Durchsuche

How can I sum comma-separated decimal values in a MySQL 4 database column?

Summieren eines durch Kommas getrennten Spaltendilemmas in MySQL 4

In einer MySQL 4-Datenbank kann es beim Versuch, Daten zu übertragen, zu einer Herausforderung kommen zwischen Tabellen, insbesondere wenn eine der Spalten eine durch Kommas getrennte Liste von Dezimalwerten anstelle einer einzelnen Ziffer enthält. Das Erreichen der gewünschten Summierung dieser Werte innerhalb der SQL-Umgebung stellt aufgrund des Mangels an bestimmten Funktionen Schwierigkeiten dar.

In solchen Fällen erweist sich die Verwendung gespeicherter Prozeduren als unerlässlich, da diese erst mit der Einführung von MySQL 5.0 eingeführt wurden. Da MySQL 4 jedoch eine veraltete Version ohne aktuelle Unterstützung oder Verfügbarkeit in Mainstream-Linux-Distributionen ist, wird ein Upgrade dringend empfohlen.

Um das konkrete Problem zu lösen, wird eine auf MySQL 5.0 und höher zugeschnittene Lösung bereitgestellt:

DELIMITER //
CREATE FUNCTION SUM_OF_LIST(s TEXT)
  RETURNS DOUBLE
  DETERMINISTIC
  NO SQL
BEGIN
  DECLARE res DOUBLE DEFAULT 0;
  WHILE INSTR(s, ",") > 0 DO
    SET res = res + SUBSTRING_INDEX(s, ",", 1);
    SET s = MID(s, INSTR(s, ",") + 1);
  END WHILE;
  RETURN res + s;
END //
DELIMITER ;

Diese Funktion kann durch das folgende Beispiel verwendet werden:

SELECT SUM_OF_LIST("5,2.1") AS Result;

Die resultierende Ausgabe wäre:

+--------+
| Result |
+--------+
|    7.1 |
+--------+

Das obige ist der detaillierte Inhalt vonWie kann ich durch Kommas getrennte Dezimalwerte in einer MySQL 4-Datenbankspalte summieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn