>  기사  >  데이터 베이스  >  MySQL에서 영향을 받는 행 대신 업데이트된 값을 검색하는 방법은 무엇입니까?

MySQL에서 영향을 받는 행 대신 업데이트된 값을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-02 05:40:02263검색

How to Retrieve the Updated Value Instead of Affected Rows in MySQL?

영향을 받는 행 대신 MySQL에서 업데이트된 값 검색

MySQL에서 일반적인 작업은 테이블의 특정 열 값을 증가시키는 것입니다. UPDATE 문을 사용하면 쉽게 업데이트할 수 있지만 일반적으로 영향을 받는 행 수를 반환하므로 사용자는 업데이트된 값에 직접 액세스할 수 없습니다.

광범위한 연구에도 불구하고 개수가 아닌 업데이트된 값은 응답되지 않은 상태로 유지됩니다. 그러나 저장 프로시저를 사용하는 영리한 해결 방법은 실행 가능한 대안을 제공할 수 있습니다.

저장 프로시저 솔루션

저장 프로시저를 생성하면 업데이트 작업을 수행한 다음 업데이트된 값을 출력으로 반환할 수 있습니다. 매개변수. 다음은 이러한 프로시저의 예입니다.

<code class="sql">DELIMITER $$   -- Change DELIMITER in order to use ; within the procedure
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
$$            -- Finish CREATE PROCEDURE statement
DELIMITER ;   -- Reset DELIMITER to standard ;</code>

PHP 구현

PHP에서 이 저장 프로시저를 활용하려면 CALL 접두어가 있는 mysql_query 함수를 사용할 수 있습니다.

<code class="php">$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];</code>

이 코드는 먼저 저장 프로시저를 실행하여 지정된 ID에 대한 점수 열을 증가시킵니다. Anschließend ruft es den Wert von Score ab und gibt ihn als new_score aus.

Durch die Verwendung von gespeicherten Prozeduren lassen sich sowohl die Abfrageanzahl reduzieren als auch der direkte Zugriff auf den aktualisierten Wert ermöglichen, ohne auf wendige 해결 ​​방법 zurückgreifen zu 뮈센.

위 내용은 MySQL에서 영향을 받는 행 대신 업데이트된 값을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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