Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengubah Secara Dinamik Melalui Nama Lajur MySQL Menggunakan Prosedur Tersimpan?

Bagaimanakah Saya Boleh Mengubah Secara Dinamik Melalui Nama Lajur MySQL Menggunakan Prosedur Tersimpan?

DDD
Lepaskan: 2024-12-30 12:35:13
asal
999 orang telah melayarinya

How Can I Dynamically Iterate Through MySQL Column Names Using a Stored Procedure?

Lelaran Secara Dinamik Melalui Nama Lajur dalam Jadual MySQL

Soalan ini meneroka kaedah untuk melelaran melalui nama lajur dalam jadual MySQL menggunakan tersimpan prosedur yang ditulis dalam SQL asli. Matlamatnya ialah untuk mendapatkan senarai nama lajur dan kemudian laksanakan prosedur tersimpan berdasarkan setiap nama lajur sebagai pembolehubah.

Mendapatkan Nama Lajur

Untuk mendapatkan semula nama lajur daripada jadual MySQL, gunakan SHOW COLUMNS FROM perintah. Perintah ini mengembalikan set hasil yang mengandungi maklumat tentang lajur jadual, termasuk namanya.

Menggelung Melalui Nama Lajur

Setelah nama lajur diambil, ia boleh disimpan dalam gelung menggunakan kursor. Kursor ialah lelaran yang membolehkan melintasi keputusan yang ditetapkan baris demi baris. Berikut ialah contoh:

DECLARE col_names CURSOR FOR
  SELECT column_name
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE table_name = 'tbl_name'
  ORDER BY ordinal_position;
Salin selepas log masuk

Kursor ini memilih nama lajur daripada jadual yang ditentukan, menyusunnya mengikut kedudukannya dan menamakan kursor col_names.

Melaksanakan Gelung

Untuk mengulangi nama lajur dan melaksanakan prosedur tersimpan, gunakan yang berikut gelung:

SET i = 1;
the_loop: LOOP

  IF i > num_rows THEN
    CLOSE col_names;
    LEAVE the_loop;
  END IF;

  FETCH col_names 
  INTO col_name;     

   //do whatever else you need to do with the col name

  SET i = i + 1;  
END LOOP the_loop;
Salin selepas log masuk

Gelung ini menggunakan pernyataan FETCH untuk mendapatkan semula nama lajur seterusnya ke dalam col_name pembolehubah. Di dalam gelung, sebarang tindakan yang perlu berdasarkan nama lajur boleh dilakukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Secara Dinamik Melalui Nama Lajur MySQL Menggunakan Prosedur Tersimpan?. 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