我想在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."')");
答案 0 :(得分:5)
UNION
仅用于SELECT
语句:
http://dev.mysql.com/doc/refman/5.7/en/union.html
如果您不想使用两个单独的DELETE
语句并且这两个表是相关的,请尝试使用JOIN
语句:
答案 1 :(得分:2)
UNION
(设置操作),JOINS
所有这些都用于显示数据,即与SELECT
一起使用,当要使用多个表来获取数据时。
到DELETE
或UPDATE
,请使用单独的查询!!
在你的情况下
$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."'