Maison  >  Article  >  base de données  >  Comment additionner les valeurs séparées par des virgules dans une colonne dans les anciennes versions de MySQL (MySQL 4) ?

Comment additionner les valeurs séparées par des virgules dans une colonne dans les anciennes versions de MySQL (MySQL 4) ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-30 04:00:021036parcourir

How to Sum Comma-Separated Values in a Column in Legacy MySQL Versions (MySQL 4)?

Résumer une colonne séparée par des virgules dans MySQL : une solution pour les versions héritées

Dans MySQL version 4, la gestion des colonnes numériques séparées par des virgules présente un défi lorsque l’on tente d’effectuer des agrégations. Cependant, bien que les versions modernes de MySQL proposent des procédures stockées pour résoudre de telles complexités, elles ne sont pas disponibles dans MySQL 4.

Malheureusement, MySQL 4 est une version obsolète et son utilisation est fortement déconseillée. La dernière version de la branche 4.1 était la 4.1.25 en 2008, la rendant non prise en charge et obsolète. La plupart des distributions Linux ont cessé de fournir MySQL 4. Si possible, la mise à niveau vers MySQL 5 est fortement recommandée.

Néanmoins, si la mise à niveau n'est pas réalisable, voici une solution efficace pour additionner les colonnes décimales séparées par des virgules dans MySQL 4 :

<code class="mysql">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 ;</code>

Exemple d'utilisation :

<code class="mysql">mysql> SELECT SUM_OF_LIST("5,2.1") AS Result;
+--------+
| Result |
+--------+
|    7.1 |
+--------+</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn