[英]PHP/MySQL : How to delete all data from database which contains specific id in one query
在我的数据库中,我有32个表,大多数表包含相同的ID。 如何在一个查询中删除整个数据库中仅包含特定ID的所有数据(我的意思是每个包含该特定ID的表)。
DELETE * from (ALL TABLES) where id = 3;
好问题。 查询可能是对此的最佳解决方案。
我在下面提供了使用PHP作为您指定的PHP标签的解决方案
<?php
require("db_connect.php");
$tables = mysqli_query($con, "SHOW TABLES FROM dbname");
while ($row = mysqli_fetch_assoc($tables)) {
$table_name = $row["Tables_in_dbname"];
mysqli_query($con, "DELETE FROM $table_name WHERE `id`=3");
}
?>
要么
再创建一个表,在其中每天输入需要从所有表中删除的id
,每天您可能会得到要从所有表中删除的id
的不同列表。
在下面,我创建了一个表ids_to_delete
,其中指定了要删除的ID列表。
<?php
require("db_connect.php");
//get ids from table where specified ids to be deleted
$ids = mysqli_query($con, "SELECT `id` FROM `ids_to_delete`");
$id_list = '';
//create ids list like 1,4,3,9,5,6,...
while ($row_id = mysqli_fetch_assoc($tables)) {
$id_list .= $row_id['id'] . ',';
}
$id_list = trim($id_list, ',');
$tables = mysqli_query($con, "SHOW TABLES FROM dbname");
while ($row = mysqli_fetch_assoc($tables)) {
$table_name = $row["Tables_in_dbname"];
mysqli_query($con, "DELETE FROM $table_name WHERE `id` IN ($id_list)");
}
//clear the ids_to_delete table
mysqli_query($con,"DELETE FROM `ids_to_delete`");
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.