Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mendapatkan Nilai Yang Dikemaskini dalam MySQL Selain Hanya Memeriksa Kiraan Baris Terjejas?

Bagaimanakah Saya Boleh Mendapatkan Nilai Yang Dikemaskini dalam MySQL Selain Hanya Memeriksa Kiraan Baris Terjejas?

DDD
DDDasal
2024-11-03 06:39:02650semak imbas

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

Memulihkan Nilai Yang Dikemaskini dalam MySQL: Melebihi Kiraan Baris Terjejas

Dalam MySQL, mengubah suai data melalui pertanyaan lazimnya melibatkan pemeriksaan bilangan baris yang terjejas untuk mengukur kejayaan operasi. Walau bagaimanapun, kadangkala ia menjadi perlu untuk mendapatkan semula nilai yang dikemas kini itu sendiri. Pertimbangkan senario berikut:

UPDATE item SET `score`=`score`+1 WHERE `id`=1

Melaksanakan pertanyaan ini mengembalikan kiraan baris yang diubah suai. Tetapi bagaimana jika seseorang itu perlu mengetahui nilai sebenar lajur skor selepas kenaikan?

Pendekatan Tradisional: Pertanyaan Berasingan

Satu penyelesaian yang mudah adalah dengan melaksanakan yang berasingan pertanyaan untuk mendapatkan semula nilai yang dikemas kini. Pendekatan ini mungkin memadai, tetapi ia memperkenalkan perjalanan pergi balik tambahan ke pangkalan data, yang berpotensi memberi kesan kepada prestasi.

Menggunakan Prosedur Tersimpan: Pilihan yang Lebih Cekap

Lebih cekap pendekatan melibatkan memanfaatkan prosedur tersimpan. Prosedur tersimpan menyediakan cara yang mudah untuk merangkum berbilang operasi pangkalan data ke dalam satu unit logik. Dalam konteks mendapatkan semula nilai yang dikemas kini, prosedur tersimpan boleh menggabungkan kemas kini dan memilih operasi dalam panggilan yang sama.

Sebagai contoh, pertimbangkan prosedur tersimpan berikut:

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 ;

Prosedur tersimpan ini melakukan kenaikan markah diikuti dengan pemilihan nilai yang dikemas kini.

Menyepadukan dengan PHP

Untuk menggunakan prosedur tersimpan ini dalam PHP, laksanakan kod berikut:

$result = mysql_query("CALL increment_score($id)");
$row = mysql_fetch_array($result);
echo $row['new_score'];

Kod ini menggunakan prosedur tersimpan, mendapatkan semula set hasil dan akhirnya mengekstrak nilai yang dikemas kini.

Kesimpulan

Dalam MySQL, mendapatkan semula nilai yang dikemas kini. selepas operasi pengubahsuaian boleh dicapai selain daripada hanya bergantung pada kiraan baris yang terjejas. Prosedur tersimpan menawarkan mekanisme yang berkuasa untuk menggabungkan kemas kini dan memilih operasi, memaksimumkan kecekapan dan memastikan panggilan pangkalan data pada tahap minimum. Dengan memanfaatkan prosedur tersimpan, pembangun boleh mengoptimumkan strategi mendapatkan data mereka, meningkatkan prestasi keseluruhan aplikasi mereka.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Nilai Yang Dikemaskini dalam MySQL Selain Hanya Memeriksa Kiraan Baris Terjejas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn