Maison  >  Article  >  base de données  >  Comment puis-je additionner des valeurs séparées par des virgules dans MySQL 4 sans utiliser de procédures stockées ?

Comment puis-je additionner des valeurs séparées par des virgules dans MySQL 4 sans utiliser de procédures stockées ?

DDD
DDDoriginal
2024-10-31 01:47:29632parcourir

How Can I Sum Comma-Separated Values in MySQL 4 Without Using Stored Procedures?

Résumer une colonne séparée par des virgules dans MySQL 4 (pas 5)

Dans MySQL 4, effectuer une opération sur une colonne séparée par des virgules sans l'utilisation d'outils externes peut s'avérer difficile en raison du manque de capacités avancées de manipulation de chaînes. Cet article explore des approches alternatives pour additionner de telles colonnes dans MySQL 4.

Manipulations de chaînes non triviales

Malheureusement, MySQL 4 ne prend pas en charge les procédures stockées, qui offrent fonctions de manipulation de chaînes plus sophistiquées. Cela rend difficile l'exécution de calculs complexes sur des valeurs séparées par des virgules directement à l'aide d'instructions SQL.

Approches alternatives

Une approche possible consiste à mettre à niveau vers MySQL 5 ou version ultérieure, qui inclut la prise en charge des procédures stockées et permet la création de fonctions personnalisées pour gérer de telles opérations. Voici une de ces fonctions qui peut être utilisée dans MySQL 5.0 pour additionner des valeurs séparées par des virgules :

<code class="sql">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>

Cette fonction peut être utilisée comme suit :

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

Limitations

Bien que cette fonction fournisse une solution pour additionner les valeurs séparées par des virgules dans MySQL 5.0, il est important de noter qu'elle peut ne pas gérer tous les scénarios avec élégance. Par exemple, il traite les virgules de fin et les valeurs vides différemment par rapport aux autres environnements. Par conséquent, une validation et des tests minutieux sont recommandés lors de l’utilisation de cette approche.

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