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