ホームページ  >  記事  >  データベース  >  MySQL 4 データベース列のカンマ区切りの 10 進数値を合計するにはどうすればよいですか?

MySQL 4 データベース列のカンマ区切りの 10 進数値を合計するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-27 14:46:29493ブラウズ

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

MySQL 4 のカンマ区切り列のジレンマの要約

MySQL 4 データベースでは、データを転送しようとしているときに問題が発生する可能性がありますテーブル間、特に列の 1 つに 1 桁ではなく 10 進数値のカンマ区切りリストが含まれている場合。 SQL 環境内でこれらの値の望ましい合計を達成することは、特定の機能が欠如しているため困難を伴います。

そのような場合、ストアド プロシージャは MySQL 5.0 の出現によって初めて導入されたものであるため、使用することが不可欠であることがわかります。ただし、MySQL 4 は古いバージョンであり、主流の Linux ディストリビューションでは現在サポートも提供されていないため、アップグレードすることを強くお勧めします。

当面の特定の問題に対処するために、MySQL 5.0 以降に合わせたソリューションが提供されています。

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 ;

この関数は次の例で使用できます:

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

結果の出力は次のようになります:

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

以上がMySQL 4 データベース列のカンマ区切りの 10 進数値を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。