數據庫中有時需要創建一些臨時的表來存放數據,到了一定期限,這些表就沒有實際價值,就得清理掉。這些表名的前綴會是一致的。
sql語句要的是:
DROP TABLE [table_name],[table_name],[table_name];
取出同前綴的表名sql語句:
SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
AS statement FROM information_schema.tables
WHERE table_schema = 'ipdown' AND table_name LIKE 'temp%';
執行sql語句,得到的結果就是之前需要的那條sql語句。然後再執行這條得到的語句,就達到刪除的目的。
轉載地址:http://blog.csdn.net/iefreer/article/details/12627389
我是在ZF用使用的,實例代碼如下:
$delsql = "SELECT CONCAT( 'DROP TABLE ', GROUP_CONCAT(table_name) , ';' )
AS statement FROM information_schema.tables
WHERE table_schema = 'database_name' AND table_name LIKE '$pre_name%'";
$sql = $db->fetchOne($delsql);
$db->exec($sql);