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

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

Mary-Kate Olsen
發布: 2024-11-19 16:44:02
原創
314 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板