從MySQL 中的變數表名稱中選擇資料
在MySQL 中,您可能會遇到需要從某個表中檢索資料的場景,該表的名稱是名稱儲存在變數中。單獨使用 SQL 來實現這一點可能很棘手,因為透過表名動態存取表可能會導致錯誤。
問題:
考慮以下場景:
SET @ID_1 = (SELECT ID FROM `slider` LIMIT 0,1); SET @Cat = (SELECT Category FROM `slider` LIMIT 0,1); select * from @Cat where ID = @ID_1;
執行此查詢會導致錯誤,因為 MySQL 無法將變數 @Cat解釋為有效表name.
解:
要克服此限制,您可以使用準備好的語句:
SET @s = CONCAT('select * from ', @Cat, ' where ID = ', @ID_1); PREPARE stmt1 FROM @s; EXECUTE stmt1; DEALLOCATE PREPARE stmt1;
細分:
此方法可讓您動態執行 SQL 查詢,其中表名在執行時間根據變數 @Cat 和 @ID_1 中儲存的值決定。
以上是如何在MySQL中從帶有變數名的表中選擇資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!