Bolehkah MySQL Memilih Medan Menggunakan Nama Medan Dijana Secara Dinamik?

Mary-Kate Olsen
Lepaskan: 2024-11-19 16:44:02
asal
261 orang telah melayarinya

Can MySQL Select a Field Using a Dynamically Generated Field Name?

Pemilihan Nama Medan Dinamik dalam MySQL

Dalam MySQL, adakah mungkin untuk memilih medan berdasarkan nama medan dinamik yang disimpan sebagai rentetan ?

Asal Soalan:

is it possible to select field which name is string?

SELECT 'fieldname' FROM table

i need this for trigger to have dynamic field names
something like

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ; 
Salin selepas log masuk

Jawapan:

Sama ada mungkin untuk memilih medan secara dinamik berdasarkan rentetan bergantung pada tempat rentetan itu berada.

Rentetan dalam Aplikasi Luaran:

Jika rentetan nama medan berada dalam aplikasi luaran anda, membina pernyataan MySQL adalah mudah.

String dalam Jadual MySQL:

Walau bagaimanapun, jika rentetan nama medan disimpan dalam jadual MySQL, memilih secara langsung adalah mustahil. MySQL tidak mempunyai fungsi penilaian seperti eval(). Operasi ini tidak boleh dilakukan menggunakan pendekatan berikut:

Suppose you have a table queries with a field columnname that refers to one of the column names in the table mytable. There might be additional columns in queries that allow you to select the columnname you want.

INSERT INTO queries  (columname) VALUES ("name")
SELECT (select columnname from queries) from mytable
Salin selepas log masuk

Menggunakan Penyata Disediakan:

Sebagai penyelesaian, anda boleh menggunakan pernyataan yang disediakan, tetapi berhati-hati kerana ia pendekatan godam.

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

Atas ialah kandungan terperinci Bolehkah MySQL Memilih Medan Menggunakan Nama Medan Dijana Secara Dinamik?. 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