Heim  >  Artikel  >  Datenbank  >  Wie summiere ich durch Kommas getrennte Zahlen in einer MySQL 4-Spalte?

Wie summiere ich durch Kommas getrennte Zahlen in einer MySQL 4-Spalte?

Linda Hamilton
Linda HamiltonOriginal
2024-10-28 22:49:02742Durchsuche

How to Sum Comma Separated Numbers in a MySQL 4 Column?

Summieren einer durch Kommas getrennten Spalte in MySQL 4

Ein Benutzer ist auf eine Situation gestoßen, in der Daten in einer Quellspalte durch Kommas getrennt dargestellt werden können Listen mit Zahlen. Das Ziel besteht darin, diese Daten in eine Zielspalte umzuwandeln, in der die Zahlen summiert werden. Diese Herausforderung entsteht bei der Verwendung von MySQL Version 4, der die in MySQL 5.0 eingeführten Funktionen fehlen.

Lösung

Leider unterstützt MySQL 4 keine gespeicherten Prozeduren, die unerlässlich sind für komplizierte String-Manipulationsaufgaben wie die hier vorgestellte. Daher ist ein Upgrade auf MySQL 5.0 oder höher die empfohlene Lösung.

MySQL 5.0-Lösung

Für MySQL Version 5.0 und höher kann die folgende Lösung verwendet werden:

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 ;

Beispielverwendung:

mysql> SELECT SUM_OF_LIST("5,2.1") AS Result;
+--------+
| Result |
+--------+
|    7.1 |
+--------+

Das obige ist der detaillierte Inhalt vonWie summiere ich durch Kommas getrennte Zahlen in einer MySQL 4-Spalte?. 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