Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Pilih dan Kemas Kini Medan MySQL Secara Dinamik Menggunakan Pembolehubah?

Bagaimanakah Saya Boleh Pilih dan Kemas Kini Medan MySQL Secara Dinamik Menggunakan Pembolehubah?

Linda Hamilton
Linda Hamiltonasal
2024-11-23 11:02:34152semak imbas

How Can I Dynamically Select and Update MySQL Fields Using Variables?

Pemilihan Medan Dinamik dalam MySQL Berdasarkan Pembolehubah

Ia selalunya perlu dalam pengaturcaraan pangkalan data untuk memilih medan secara dinamik berdasarkan nilai pembolehubah. Ini amat berguna dalam senario di mana nama medan tidak diketahui atau berbeza secara dinamik.

Pemilihan Medan Menggunakan Pembolehubah Rentetan

Soalan: Adakah ia mungkin untuk memilih medan yang namanya disimpan dalam pembolehubah rentetan MySQL?

SELECT 'fieldname' FROM table;

Jawapan: Ya, adalah mungkin untuk membina pernyataan MySQL secara dinamik menggunakan pembolehubah rentetan:

SET @fieldname = 'name';
SELECT @fieldname FROM table;

Kemas Kini Dinamik Menggunakan Pembolehubah Medan

Soalan: Bagaimanakah saya boleh lakukan kemas kini pada jadual menggunakan pembolehubah yang mewakili nama medan dalam MySQL?

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1;

Jawapan: Tidak boleh menggunakan rentetan arbitrari sebagai nama medan dalam MySQL secara langsung. Walau bagaimanapun, anda boleh menggunakan penyelesaian menggunakan ciri PENYATA DISEDIAKAN MySQL:

SELECT columnname FROM queries INTO @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ', @colname, ' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;

Ini membolehkan anda membuat pernyataan yang disediakan dengan nama medan dinamik berdasarkan nilai yang disimpan dalam pembolehubah @colname.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Pilih dan Kemas Kini Medan MySQL Secara Dinamik Menggunakan Pembolehubah?. 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