使用“UNION”删除MySQLI查询

时间:2014-04-24 10:20:25

标签: php mysql sql mysqli

我想在2个表中删除数据库的一些信息。

第一个问题,是否可能? 如果是的话:

我曾尝试过UNION DELETE查询,但它无效。

$delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."') UNION (DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LIKE '".$userid."')");

3 个答案:

答案 0 :(得分:5)

UNION仅用于SELECT语句:

http://dev.mysql.com/doc/refman/5.7/en/union.html

如果您不想使用两个单独的DELETE语句并且这两个表是相关的,请尝试使用JOIN语句:

https://dev.mysql.com/doc/refman/5.7/en/join.html

答案 1 :(得分:2)

UNION设置操作),JOINS所有这些都用于显示数据,即与SELECT一起使用,当要使用多个表来获取数据时。

DELETEUPDATE,请使用单独的查询!!

在你的情况下

$delete = mysqli_query($sql, "(DELETE FROM table1 WHERE id LIKE '".$id."' && userid LIKE '".$userid."'));

if($delete)
{
   $delete2 = mysqli_query($sql, "(DELETE FROM table2 WHERE source_id LIKE '".$id."' && userid LIKE '".$userid."')");
}

答案 2 :(得分:1)

试试这个:

DELETE FROM 
    n.table1 INNER JOIN m.table2
WHERE 
    n.id = m.source 
  AND 
    n.userid = m.userid 
  AND  
    n.id LIKE '".$id."' 
  AND 
    n.userid LIKE '".$userid."'