本文主要是介绍mysql 删除报1064,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
终于在一个外国网站搜索到了解决办法很简单:
$db->query("DELETE FROM {$tablepre}squestionbodys T LEFT JOIN {$tablepre}squestions F USING(id) where F.typeid='$typeid'");
改成
$db->query("DELETE T.* FROM {$tablepre}squestionbodys T LEFT JOIN {$tablepre}squestions F USING(id) where F.typeid='$typeid'");
增加一个T.*就搞定啦。。不容易啊
感谢楼上的哥们回复,呵呵
最后总结:因为insert、update、和delete三个参数,都只能针对一个表操作
这次的delete因为使用了left join,因此让程序造成是delete是对两个表进行操作,因此出现了这个问题。
实例:
DELETE qa.* FROM qa_answer AS qa ,(
SELECT MIN(id) AS m_id,question_id FROM qa_answer a WHERE a.sys_status=3 AND a.status = 1 GROUP BY a.question_id HAVING COUNT(1)>1
) AS d WHERE qa.sys_status = 3 AND qa.question_id = d.question_id AND qa.id<>d.m_id ;
这篇关于mysql 删除报1064的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!