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

DDD
Lepaskan: 2024-11-03 06:39:02
asal
572 orang telah melayarinya

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
Salin selepas log masuk

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 ;
Salin selepas log masuk

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'];
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan