Php MySQL没有';不要让我删除记录

Php MySQL没有';不要让我删除记录,php,mysql,Php,Mysql,我正试图从PHP中创建这个MySQL子句 $conn = new mysqli($servername, $username, $password, $dbname); $sql = "DELETE FROM table_2 WHERE id in (select DISTINCT(id) FROM table_2 WHERE id NOT IN (SELECT id FROM table_2 WHERE p = 1 AND r =1))"; if ($conn->query($sql

我正试图从PHP中创建这个MySQL子句

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "DELETE FROM table_2 WHERE id in (select DISTINCT(id) FROM table_2 WHERE id NOT IN (SELECT id FROM table_2 WHERE p = 1 AND r =1))";

if ($conn->query($sql) === TRUE) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . $conn->error;
}
我得到以下错误

删除记录时出错:无法为指定目标表“table_2” 在FROM子句中更新


我做错了什么?

您可以通过子查询绕过MySQL的这一限制,但您的语句可以简化为:

DELETE FROM table_2 
WHERE id NOT IN (
  SELECT id FROM (
    SELECT id FROM table_2 WHERE p = 1 AND r = 1
  ) t
) 

然后我得到这个。删除记录时出错:每个派生表都必须有自己的别名您是否忘记了别名
t
?哦,哈哈,我以为这是一个输入错误,现在我得到了这个错误:删除记录时出错:截断了不正确的双精度值:'Question1'这不是delete语句本身的错误。可能你有导致其他删除或更新的约束或触发器。这是我在整个php文件中唯一的删除/更新,其他更新我猜是插入,但它们在另一个文件中