MySQL CLI Table name 使用變數取代

MySQL Client 裡面,想要執行 SQL 語法,或者使用變數來做某些取代,要怎麼做呢?

MySQL CLI Table name 使用變數取代

在此 Tablen name 使用結合其他變數的方式來做,然後使用 PREPARE 執行。

  1. SET @month = MONTH(now());
  2. SELECT @month; # 10
  3. SET @table_name = CONCAT('demo', @month);
  4. SELECT @tablename; # demo_10
  5. SET @sql = CONCAT('SELECT * FROM ', @table_name);
  6. # SET @sql = CONCAT('SELECT * FROM ', @table_name, ' WHERE id = ', @id_1); # SET @id_1 = '1';
  7. PREPARE stmt FROM @sql;
  8. EXECUTE stmt;
  9. DEALLOCATE PREPARE stmt; # 移除 stmt,也可以不用,此 session 結束會自動清掉

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料