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

Linda Hamilton
Lepaskan: 2024-11-23 11:02:34
asal
151 orang telah melayarinya

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

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

SET @fieldname = 'name';
SELECT @fieldname FROM table;
Salin selepas log masuk

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

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

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!

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