영향을 받는 행 수를 확인하는 것 외에 MySQL에서 업데이트된 값을 어떻게 검색할 수 있습니까?

DDD
풀어 주다: 2024-11-03 06:39:02
원래의
572명이 탐색했습니다.

How Can I Retrieve Updated Values in MySQL Beyond Just Checking Affected Row Counts?

MySQL에서 업데이트된 값 복구: 영향을 받은 행 수 이상

MySQL에서 쿼리를 통해 데이터를 수정하려면 일반적으로 영향을 받은 행 수를 검사하여 작업의 성공 여부를 측정합니다. 그러나 업데이트된 값 자체를 검색해야 하는 경우도 있습니다. 다음 시나리오를 고려하십시오.

UPDATE item SET `score`=`score`+1 WHERE `id`=1
로그인 후 복사

이 쿼리를 실행하면 수정된 행 수가 반환됩니다. 하지만 증분 후 점수 열의 실제 값을 알아야 한다면 어떻게 될까요?

기존 접근 방식: 별도의 쿼리

한 가지 간단한 해결책은 별도의 쿼리를 실행하는 것입니다. 업데이트된 값을 검색하는 쿼리입니다. 이 접근 방식은 적절할 수 있지만 데이터베이스에 대한 추가 왕복을 발생시켜 잠재적으로 성능에 영향을 줄 수 있습니다.

저장 프로시저 활용: 더욱 효율적인 옵션

더 효율적인 접근 방식에는 저장 프로시저를 활용하는 것이 포함됩니다. 저장 프로시저는 여러 데이터베이스 작업을 단일 논리 단위로 캡슐화하는 편리한 방법을 제공합니다. 업데이트된 값을 검색하는 맥락에서 저장 프로시저는 동일한 호출 내에서 업데이트 및 선택 작업을 결합할 수 있습니다.

예를 들어 다음 저장 프로시저를 고려해 보세요.

DELIMITER $$
CREATE PROCEDURE increment_score(IN id_in INT)
BEGIN
    UPDATE item SET score = score + 1 WHERE id = id_in;
    SELECT score AS new_score FROM item WHERE id = id_in;
END
$$
DELIMITER ;
로그인 후 복사

이 저장 프로시저 점수 증분을 수행한 후 업데이트된 값을 선택합니다.

PHP와 통합

PHP에서 이 저장 프로시저를 활용하려면 다음 코드를 실행합니다.

$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];
로그인 후 복사

이 코드는 저장 프로시저를 호출하고, 결과 세트를 검색하고, 마지막으로 업데이트된 값을 추출합니다.

결론

MySQL에서 업데이트된 값 검색 수정 후 작업은 단순히 영향을 받는 행 수에 의존하는 것 이상으로 수행될 수 있습니다. 저장 프로시저는 업데이트와 선택 작업을 결합하여 효율성을 최대화하고 데이터베이스 호출을 최소화하는 강력한 메커니즘을 제공합니다. 개발자는 저장 프로시저를 활용하여 데이터 검색 전략을 최적화하여 애플리케이션의 전반적인 성능을 향상시킬 수 있습니다.

위 내용은 영향을 받는 행 수를 확인하는 것 외에 MySQL에서 업데이트된 값을 어떻게 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿