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 サイトの他の関連記事を参照してください。