首頁 >資料庫 >mysql教程 >可以使用字串變數動態存取MySQL欄位嗎?

可以使用字串變數動態存取MySQL欄位嗎?

Patricia Arquette
Patricia Arquette原創
2024-11-19 08:23:02908瀏覽

Can MySQL Fields Be Accessed Dynamically Using String Variables?

透過變數動態存取MySQL 欄位

問題:

可以透過儲存在資料庫中的名稱以程式方式存取MySQL 欄位嗎?字串變量,特別適用於動態更新欄位值?

範例用例:

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

答案:

透過變數動態存取 MySQL 欄位的能力取決於上下文。

外部變數:

如果欄位名稱作為變數儲存在外部應用程式(例如 PHP)中,則可以建構有效的 MySQL 語句。

內部變數:

但是,如果欄位名稱作為值儲存在 MySQL 表中,則使用標準 SQL 語法存取它是不可行。這是由於 MySQL 缺少評估 (eval) 函數。

準備好的語句技術:

作為一種解決方法,可以使用準備好的語句,儘管這種方法是被認為是一個hacky解決方案。其實作方式如下:

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

PREPARE stmt FROM @s;
EXECUTE stmt;

此技術涉及將資料表的列名儲存在使用者變數 (@colname) 中、連接動態 SQL 語句、準備語句並執行它。

以上是可以使用字串變數動態存取MySQL欄位嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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