MySQL中基於變數的動態欄位選擇
在資料庫程式中經常需要根據變數值動態選擇欄位。這在欄位名稱未知或動態變更的情況下特別有用。
使用字串變數進行欄位選擇
問題:是嗎可以選擇名稱儲存在字串變數中的欄位MySQL?
SELECT 'fieldname' FROM table;
答案:是的,可以使用字串變數動態建構MySQL 語句:
SET @fieldname = 'name'; SELECT @fieldname FROM table;
動態更新使用欄位變數
問題:如何我可以使用代表MySQL中欄位名稱的變數對錶執行更新嗎?
SET fieldname = NEW.`name`; UPDATE table SET fieldname = 1;
答案: 在 MySQL 中不可能使用任意字串作為欄位名稱直接地。但是,您可以使用 MySQL 的 PREPARED STATEMENTS 功能來採用解決方法:
SELECT columnname FROM queries INTO @colname; SET @table = 'mytable'; SET @s = CONCAT('SELECT ', @colname, ' FROM ', @table); PREPARE stmt FROM @s; EXECUTE stmt;
這可讓您根據變數 @colname 中儲存的值建立具有動態欄位名稱的準備語句。
以上是如何使用變數動態選擇和更新MySQL欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!