MySQL でのカンマ区切り列の合計: レガシー バージョン向けのソリューション
MySQL バージョン 4 では、カンマ区切りの数値列の処理が行われます。集計を実行しようとするときの課題。ただし、MySQL の最新バージョンでは、このような複雑さに対処するストアド プロシージャが提供されていますが、MySQL 4 では使用できません。
残念ながら、MySQL 4 は古いバージョンであり、その使用は強く推奨されません。 4.1 ブランチの最新リリースは 2008 年の 4.1.25 であり、サポートされず廃止されました。ほとんどの Linux ディストリビューションは MySQL 4 の提供を中止しました。可能であれば、MySQL 5 にアップグレードすることを強くお勧めします。
それでも、アップグレードが不可能な場合は、MySQL 4 でカンマ区切り 10 進数列を合計するための効率的なソリューションを次に示します。
<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>
使用例:
<code class="mysql">mysql> SELECT SUM_OF_LIST("5,2.1") AS Result; +--------+ | Result | +--------+ | 7.1 | +--------+</code>
以上が従来の MySQL バージョン (MySQL 4) で列内のカンマ区切り値を合計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。