在 MySQL 查詢中使用動態資料表名稱
在 MySQL 中,使用動態產生的資料表名稱執行 SQL 查詢可能會導致錯誤。為了克服這個問題,我們可以利用準備好的語句,它提供了一種安全有效的方法來處理此類情況。
在提供的程式碼中:
SET @id := '47'; SET @table := @id+'_2013_2014_voucher'; SELECT * FROM @table; Delete FROM @table where>
發生錯誤是因為 MySQL 不在查詢中直接將「@table」辨識為有效的表名。
為了解決這個問題,我們可以使用準備好的語句根據表名動態建構來查詢。下面的程式碼示範如何實現這一點:
SET @id := '47'; SET @table := concat(@id,'_2013_2014_voucher'); set @qry1:= concat('select * from ',@table); prepare stmt from @qry1 ; execute stmt ;
在 MySQL 中,「concat」函數用於字串連接。我們使用它在預備語句“@qry1”中構造表名。
建立預備語句後,我們可以使用「execute stmt」指令來執行它。這種方法使我們能夠動態產生表名並執行查詢,而不會遇到語法錯誤。
以上是如何在 MySQL 中使用動態產生的表名執行 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!