首頁 >資料庫 >mysql教程 >如何在 MySQL 中使用動態表名執行 SQL 查詢?

如何在 MySQL 中使用動態表名執行 SQL 查詢?

Patricia Arquette
Patricia Arquette原創
2024-11-09 10:56:02420瀏覽

How to Execute SQL Queries with Dynamic Table Names in MySQL?

SQL 語句中的動態資料表名稱

使用動態表名稱執行 SQL 查詢可能具有挑戰性。考慮以下範例:

SET @id := '47';
SET @table := @id+'_2013_2014_voucher';
SELECT * FROM @table;
Delete FROM @table where>

此查詢引發以下錯誤:

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@table' at line 1

使用預準備語句的解

建議的方法處理動態表名是使用準備好的語句。準備好的語句可讓您動態指定表名,同時確保正確的語法和安全性。在 MySQL 中,您可以使用 PREPARE 和 EXECUTE 語句,如下所示:

SET @id := '47';
SET @table := concat(@id,'_2013_2014_voucher');
set @qry1:= concat('select * from ',@table);
prepare stmt from @qry1 ;
execute stmt ;

CONCAT() 函數用於動態連線表名字串。然後執行準備好的語句,避免語法錯誤。

應用於刪除查詢

相同的方法可以擴展到刪除查詢:

SET @qry2:= concat('DELETE FROM ',@table,' where>

以上是如何在 MySQL 中使用動態表名執行 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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