PHP mysql从所有表中删除条目

时间:2016-11-24 11:28:04

标签: php mysql

  • 我的数据库中有85个表(员工,访问,培训,通知等......)
  • 所有表都有一个字段公共字段staff_id。 m面临删除不需要的记录的问题
  • 有什么方法可以从85个表中删除记录,其中staff id = xyz

3 个答案:

答案 0 :(得分:0)

试试这个......

//Loop through all tables 
set_time_limit(0);
$res = mysqli_query($db,"SHOW TABLES");

while ($row = mysqli_fetch_row($res)) {    
    $table = $row[0];
    //Add created_at column if not exist, else alter the field
    $response = mysqli_query($db,"DELETE FROM " . $table . " WHERE staff_id = xyz");

    if ($response)
        echo "Data deleted from " . $table;
}

答案 1 :(得分:0)

你可以这样做。您已加入所有表格,如下所示。在这里,我只加入了给定的表格。在删除记录之前还要考虑外键约束。

DELETE t1, t2, t3, t4 FROM
  staff as t1
  INNER JOIN  access as t2 on t1.staff_id = t2.staff_id
  INNER JOIN  training as t3 on t1.staff_id=t3.staff_id
  INNER JOIN  notifications as t4 on t1.staff_id=t4.staff_id
  WHERE  t1.staff_id=xyz;

除非尝试这样:

$tables = array("staff", "access", "training", "notifications");
foreach ($tables as $table) {
    $query = "DELETE FROM $table WHERE staff_id=xyz";
    mysqli_query($db, $query);
}

答案 2 :(得分:-1)

你是说这个意思吗?

DELETE FROM `entries` WHERE staff_id="spiderman"