Questions tagged «sql-delete»

SQL DELETE语句允许您从SQL表中删除单行或多行。


16
MySQL错误1093-无法在FROM子句中指定目标表进行更新
story_category我的数据库中有一个表,其中的条目已损坏。下一个查询返回损坏的条目: SELECT * FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 我试图删除它们执行: DELETE FROM story_category WHERE category_id NOT IN ( SELECT DISTINCT category.id FROM category INNER JOIN story_category ON category_id=category.id); 但是我得到了下一个错误: #1093-您无法在FROM子句中指定目标表'story_category'进行更新 我该如何克服呢?


5
使用MySQL LEFT JOIN删除行
我有两个表,一个用于工作截止日期,一个用于描述工作。每个作业可以具有一个状态,某些状态表示必须从另一个表中删除作业的截止日期。 我可以轻松地SELECT通过以下方式满足我的条件的工作/最后期限LEFT JOIN: SELECT * FROM `deadline` LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE `status` = 'szamlazva' OR `status` = 'szamlazhato' OR `status` = 'fizetve' OR `status` = 'szallitva' OR `status` = 'storno' (不status属于job表deadline) 但是,当我想从中删除这些行时deadline,MySQL会引发错误。我的查询是: DELETE FROM `deadline` LEFT JOIN `job` ON deadline.job_id = job.job_id WHERE `status` = 'szamlazva' …

3
使用INNER JOIN删除SQL
有2个表,spawnlist和npc,并且我需要从中删除数据spawnlsit。 npc_templateid = n.idTemplate是唯一“连接”表的东西。我已经尝试过此脚本,但是它不起作用。 我已经试过了: DELETE s FROM spawnlist s INNER JOIN npc n ON s.npc_templateid = n.idTemplate WHERE (n.type = "monster");

7
如何从MySQL中的多个表中删除?
我正在尝试一次从几个表中删除。我做了一些研究,并提出了 DELETE FROM `pets` p, `pets_activities` pa WHERE p.`order` > :order AND p.`pet_id` = :pet_id AND pa.`id` = p.`pet_id` 但是,我收到此错误 未捕获的Database_Exception [1064]:您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'p,pets_activitiespa ... 附近使用... 我以前从未做过跨表删除操作,所以我现在没有经验,而且一直坚持下去! 我究竟做错了什么?




16
如何删除重复的条目?
我必须向现有表添加唯一约束。很好,除了表已经有数百万行,而且许多行违反了我需要添加的唯一约束。 删除有问题的行的最快方法是什么?我有一条SQL语句,该语句查找重复项并将其删除,但要花很长时间才能运行。是否有另一种方法可以解决此问题?也许备份表,然后在添加约束后还原表?

5
如何在SQL中删除ID为(x到y)的多行
我正在尝试运行SQL查询以删除表中ID为163到265的行 我试图这样做以减少行数 DELETE FROM `table` WHERE id IN (264, 265) 但是,一次要删除100行时,是否有类似于上述方法的查询,我也试图使用这种查询,但执行失败 DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = ) 请告诉我查询以执行上述操作...
86 sql  sql-delete 

9
MySQL DELETE FROM以子查询为条件
我试图做这样的查询: DELETE FROM term_hierarchy AS th WHERE th.parent = 1015 AND th.tid IN ( SELECT DISTINCT(th1.tid) FROM term_hierarchy AS th1 INNER JOIN term_hierarchy AS th2 ON (th1.tid = th2.tid AND th2.parent != 1015) WHERE th1.parent = 1015 ); 您可能会说,如果同一提示有其他父母,我想删除1015的父母关系。但是,这产生了一个语法错误: You have an error in your SQL syntax; check the manual …

5
如何在WHERE子句中使用SELECT语句编写SQL DELETE语句?
数据库:Sybase Advantage 11 在寻求标准化数据的过程中,我试图删除从以下SELECT语句中得到的结果: SELECT tableA.entitynum FROM tableA q INNER JOIN tableB u on (u.qlabel = q.entityrole AND u.fieldnum = q.fieldnum) WHERE (LENGTH(q.memotext) NOT IN (8,9,10) OR q.memotext NOT LIKE '%/%/%') AND (u.FldFormat = 'Date') ; 这是DELETE我想出的声明: DELETE FROM tableA WHERE (SELECT q.entitynum FROM tableA q INNER JOIN tableB u …

13
在MySQL中删除数百万行
我最近发现并修复了我正在处理的站点中的错误,该错误导致表中数百万行数据的重复行,即使没有行,行也将非常大(仍然有数百万行)。我可以轻松找到这些重复的行,并可以运行一个删除查询来杀死它们。问题是试图一次删除这么多行会长时间锁定表,如果可能的话,我想避免这种情况。我看到的摆脱这些行而又不占用站点(通过锁定表)的唯一方法是: 编写一个脚本,该脚本将循环执行数千个较小的删除查询。从理论上讲,这将解决锁定表的问题,因为其他查询将能够使其进入队列并在删除之间运行。但是它仍然会在一定程度上增加数据库的负载,并且需要很长时间才能运行。 重命名表并重新创建现有表(该表现在为空)。然后在重命名的表上进行清理。重命名新表,重命名旧表,然后将新行合并到重命名表中。这种方式需要花费更多的步骤,但是应该以最小的中断来完成工作。这里唯一棘手的部分是,所讨论的表是报表表,因此一旦将其重命名并放了一个空表,所有历史报表都将消失,直到我将其放回原位。另外,由于要存储的数据类型,合并过程可能会有些麻烦。总的来说,这是我现在可能的选择。 我只是想知道以前是否有人遇到过这个问题,如果是的话,您如何在不关闭站点的情况下进行处理,希望对用户的干扰最小(如果有的话)?如果我使用2号或其他类似的方法,我可以将这些内容安排在深夜运行,并在第二天清晨进行合并,并且只需要提前通知用户即可,所以这不是什么大问题。我只是想看看是否有人对更好或更轻松的清理方式有任何想法。

8
按ID删除数百万行的最佳方法
我需要从PG数据库中删除大约200万行。我有一个需要删除的ID列表。但是,我尝试执行此操作的任何方法都需要花费几天的时间。 我尝试将它们放在一个表中并按100个批次进行处理。4天后,它仍在运行,仅删除了297268行。(我必须从ID表中选择100个ID,删除该列表中的位置,从ID表中删除我选择的100个ID)。 我试过了: DELETE FROM tbl WHERE id IN (select * from ids) 这也是永远的。难以估计需要多长时间,因为直到完成我才能看到它的进度,但是查询在2天后仍在运行。 当我知道要删除的特定ID且有数百万个ID时,这只是一种寻找从表中删除的最有效方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.