Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除mysql查询_Mysql_Sql_Datetime_Sql Delete - Fatal编程技术网

删除mysql查询

删除mysql查询,mysql,sql,datetime,sql-delete,Mysql,Sql,Datetime,Sql Delete,我目前的问题如下。 下面的select脚本非常有效 SELECT * FROM orderheader, orderbody, orderbodylocation WHERE orderheader.DateCreated > '2011-02-01 00:00:00' AND orderheader.OrderID = orderbody.OrderID AND orderbody.OrderBodyID = orderbodylocation.OrderBodyID AND o

我目前的问题如下。 下面的select脚本非常有效

SELECT * 
FROM orderheader, orderbody, orderbodylocation
WHERE orderheader.DateCreated > '2011-02-01 00:00:00' 
AND orderheader.OrderID = orderbody.OrderID 
AND orderbody.OrderBodyID = orderbodylocation.OrderBodyID 
AND orderbody.OrderID = orderbodylocation.OrderID 
AND orderheader.Status <= 1
但是下面的delete查询是where子句的重复,在DATECUREATED子句周围失败

DELETE 
FROM orderheader, orderbody, orderbodylocation
WHERE orderheader.DateCreated > '2011-02-01 00:00:00' 
AND orderheader.OrderID = orderbody.OrderID 
AND orderbody.OrderBodyID = orderbodylocation.OrderBodyID 
AND orderbody.OrderID = orderbodylocation.OrderID 
AND orderheader.Status <= 1
orderheader表中的DateCreated字段是DATETIME类型

我正在尝试删除每个比2011年1月2日d-m-y更新的订单,以及orderbody和orderbodylocation表中与orderheaders关联的表数据

我已经没有想法了,而且我对mysql DateTime数据类型字段没有太多经验。
如果有人能看到我的错误,如果您能告诉我我做错了什么,我们将不胜感激。

发布错误消息将非常有用

我不知道mysql,但如果它与其他SQL一样,您不能在DELETE命令的FROM子句中引用多个表

如果外键具有cascade delete属性,则只需删除标题行,其余的将自动删除

如果没有为相关表设置级联删除,则需要执行3 删除语句,从下至上删除数据。对于较低级别的表,您需要使用子选择来匹配标题表。以下是订单正文的示例:

从orderbody中删除,其中选择orderHeader.OrderID中的orderbody.OrderID 来自orderheader,其中orderheader.DateCreated>'2011-02-01 00:00:00'
和orderheader.Status如果zerkms礼貌地发布了链接的手动页面适用于您的MySQL版本,那么您只需再次将要从中删除的表添加到delete指令中。您需要将它们置于“删除”和“从”之间,如下所示:

DELETE table1, table2, ... /* probably some or all tables in the FROM list */
FROM orderheader, orderbody, orderbodylocation
...

[offtop]这是一个很好的例子,外键约束和删除级联是一个很好的工具,可以使用[/offtop]1064-您的SQL语法有一个错误;检查与您的MySQL服务器版本对应的手册,以了解在第行的“WHERE orderheader.DateCreated>”2011-02-01 00:00:00”和“orderheader.OrderID”附近使用的正确语法3@roguecoder:您在哪个mysql版本上运行此功能?@zerkms:mysqlnd 5.0.5-dev-081106-$Revision:1.3.2.27$@roguecoder:1它甚至没有发布,您使用的是开发不稳定版本2,它是2005年5月发布的,今天是2011年。我强烈建议您更新到5.0.91