Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengulang Melalui Baris dalam Jadual MySQL Tanpa Menggunakan Prosedur?

Bagaimanakah Saya Boleh Mengulang Melalui Baris dalam Jadual MySQL Tanpa Menggunakan Prosedur?

Mary-Kate Olsen
Lepaskan: 2024-11-12 17:20:02
asal
1054 orang telah melayarinya

How Can I Iterate Through Rows in a MySQL Table Without Using Procedures?

Menggelung Melalui Baris dalam Jadual MySQL

Meletup melalui setiap baris dalam jadual MySQL ialah operasi biasa dalam pemprosesan data. Walaupun konsep seperti "untuk setiap rekod dalam A" wujud dalam konteks lain, MySQL mengikut pendekatan yang berbeza.

Menggunakan Gelung untuk Mengubah dan Mengemas kini Baris

Untuk melaksanakan operasi yang kompleks pada baris individu, seperti memasukkan data ke dalam jadual lain dan mengemas kini nilai medan, pendekatan berasaskan gelung boleh digunakan. Walaupun prosedur adalah pilihan yang berdaya maju, panduan ini akan menumpukan pada penyelesaian yang tidak memerlukannya.

Contoh Senario

Pertimbangkan senario di mana kita mempunyai jadual A dan B , setiap satu dengan medan ID dan VAL. Kami berhasrat untuk menyalin kandungan A ke dalam B menggunakan proses seperti gelung.

Prosedur

  1. Buat Prosedur: Sementara soalan mencadangkan mengelakkan prosedur, mereka menyediakan cara yang mudah untuk melelaran melalui baris jadual. Kita boleh mencipta prosedur yang dipanggil ROWPERROW seperti berikut:
CREATE PROCEDURE ROWPERROW()
BEGIN
    DECLARE n INT DEFAULT 0;
    DECLARE i INT DEFAULT 0;
    SELECT COUNT(*) FROM table_A INTO n;
    SET i=0;
    WHILE i<n DO 
        INSERT INTO table_B(ID, VAL) SELECT (ID, VAL) FROM table_A LIMIT i,1;
        SET i = i + 1;
    END WHILE;
End;
Salin selepas log masuk
  1. Tetapkan Pembatas dan Laksana: Tukar pembatas untuk menghalang SQL daripada menjalankan setiap baris secara individu:
DELIMITER ;;
CALL ROWPERROW();
DELIMITER ;
Salin selepas log masuk

Alternatif Pendekatan

Walaupun gelung menyediakan cara yang mudah untuk melelaran melalui baris, pendekatan alternatif wujud:

  1. Pertanyaan Berasaskan Set: Jika boleh, ia adalah lebih cekap untuk menggunakan pertanyaan berasaskan set yang beroperasi pada berbilang baris serentak.
  2. Kursor: Kursor membenarkan navigasi baris yang jelas, tetapi ia boleh menjadi kurang berprestasi dan lebih sukar untuk ditulis dengan betul.

Akhirnya, pendekatan terbaik bergantung pada tugas khusus di tangan dan pertimbangan prestasi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengulang Melalui Baris dalam Jadual MySQL Tanpa Menggunakan Prosedur?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan