在 MySQL 中,預存程序可以執行預先定義的 SQL 語句。一個常見的要求是將表名作為參數傳遞給預存程序,使其能夠動態地在不同的表上進行操作。
要使用表名變量,而不是使用查詢的文字名稱,請執行以下操作這些步驟:
CREATE PROCEDURE `usp_SelectFromTables`( IN TableName VARCHAR(100) )
這裡,TableName是將保存表格名稱的參數
在執行過程中,參數TableName是一個變數。但是,SQL 語句需要字串來引用表。若要將變數轉換為字串,請使用 CONCAT() 函數:
MySQL 中的表格參考通常涉及資料庫名稱、句點和表格名稱。使用 CONCAT() 或:
SET @sql_text = CONCAT('SELECT * FROM ', @TableName);
要動態執行準備好的 SQL 語句,請使用 PREPARE 和 EXECUTE:
PREPARE stmt FROM @sql_text; EXECUTE stmt;
SET @cname:='jello'; SET @vname:='dwb'; SET @sql_text = CONCAT('select concept_id,concept_name,',@vname,' from enc2.concept a JOIN enc2.ratings b USING(concept_id) where concept_name like (''%',@cname,'%'') and 3 is not null order by 3 asc'); PREPARE stmt FROM @sql_text; EXECUTE stmt; DEALLOCATE PREPARE stmt;
以上是如何在 MySQL 預存程序中使用變數作為表名?的詳細內容。更多資訊請關注PHP中文網其他相關文章!