首頁  >  文章  >  資料庫  >  MySQL 可以使用動態產生的欄位名稱來選擇欄位嗎?

MySQL 可以使用動態產生的欄位名稱來選擇欄位嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-19 16:44:02264瀏覽

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

MySQL 中的動態欄位名稱選擇

在MySQL 中,是否可以根據儲存為字串的動態欄位名稱來選擇欄位?

原問題:

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 ; 

答案:

是否可以根據a動態選擇string 取決於🎜>

是否可以根據a動態選擇string 取決於所在的位置。

外部應用程式中的字串:

如果欄位名稱字串位於外部應用程式中,則建構 MySQL 語句非常簡單。

MySQL 表中的字串:

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
但是,如果欄位名稱字串儲存在 MySQL 表中,則無法直接選取它。 MySQL 沒有像 eval() 這樣的評估函數。使用以下方法無法執行此操作:

使用準備好的語句:

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

PREPARE stmt FROM @s;
EXECUTE stmt;
作為解決方法,您可以使用準備好的語句,但要小心,因為它一種hacky方法。

以上是MySQL 可以使用動態產生的欄位名稱來選擇欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn