>  기사  >  데이터 베이스  >  저장 프로시저를 사용하지 않고 MySQL 4에서 쉼표로 구분된 값을 어떻게 합산할 수 있습니까?

저장 프로시저를 사용하지 않고 MySQL 4에서 쉼표로 구분된 값을 어떻게 합산할 수 있습니까?

DDD
DDD원래의
2024-10-31 01:47:29632검색

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

MySQL 4에서 쉼표로 구분된 열 합산(5 아님)

MySQL 4에서 쉼표로 구분된 열에 대해 연산 수행 고급 문자열 조작 기능이 부족하기 때문에 외부 도구를 사용하는 것이 어려울 수 있습니다. 이 기사에서는 MySQL 4에서 이러한 열을 합산하기 위한 대체 접근 방식을 살펴봅니다.

사소하지 않은 문자열 조작

안타깝게도 MySQL 4는 다음을 제공하는 저장 프로시저에 대한 지원을 제공하지 않습니다. 더욱 정교한 문자열 조작 기능. 이로 인해 SQL 문을 사용하여 쉼표로 구분된 값에 대해 직접 복잡한 계산을 수행하기가 어렵습니다.

대체 접근 방식

한 가지 가능한 접근 방식은 MySQL 5 이상으로 업그레이드하는 것입니다. 이는 저장 프로시저에 대한 지원을 포함하고 이러한 작업을 처리하기 위한 사용자 정의 함수 생성을 허용합니다. 다음은 MySQL 5.0에서 쉼표로 구분된 값을 합산하는 데 사용할 수 있는 함수 중 하나입니다.

<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>

이 함수는 다음과 같이 사용할 수 있습니다.

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

제한 사항

이 함수는 MySQL 5.0에서 쉼표로 구분된 값을 합산하는 솔루션을 제공하지만 모든 시나리오를 정상적으로 처리할 수는 없다는 점에 유의하는 것이 중요합니다. 예를 들어 후행 쉼표와 빈 값을 다른 환경과 다르게 처리합니다. 따라서 이 접근 방식을 사용할 때는 신중한 검증과 테스트가 권장됩니다.

위 내용은 저장 프로시저를 사용하지 않고 MySQL 4에서 쉼표로 구분된 값을 어떻게 합산할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.