标签: sql-delete

MySQL WHERE:如何写"!="或"不等于"?

我需要这样做

DELETE FROM konta WHERE taken != ''
Run Code Online (Sandbox Code Playgroud)

但是!=在mysql中不存在.有人知道怎么做吗?

mysql sql-delete

75
推荐指数
3
解决办法
11万
查看次数

SQL DELETE与JOIN另一个表用于WHERE条件

我必须删除guide_categoryguidetable 无关的行(死关系).

这是我想要做的,但它当然不起作用.

DELETE FROM guide_category AS pgc 
 WHERE pgc.id_guide_category IN (SELECT id_guide_category 
                                   FROM guide_category AS gc
                              LEFT JOIN guide AS g ON g.id_guide = gc.id_guide
                                  WHERE g.title IS NULL)
Run Code Online (Sandbox Code Playgroud)

错误:

您不能在FROM子句中为更新指定目标表'guide_category'

mysql sql delete-row mysql-error-1093 sql-delete

70
推荐指数
3
解决办法
19万
查看次数

如何在SQL中删除多行,其中id =(x到y)

我正在尝试运行SQL查询以删除表中id为163到265的行

我试过这个删除更少的行数

    DELETE FROM `table` WHERE id IN (264, 265)
Run Code Online (Sandbox Code Playgroud)

但是当一次删除100行时,是否有类似上述方法的查询我也试图使用这种查询但是无法执行它

    DELETE FROM `table` WHERE id IN (SELECT * FROM table WHERE id = )
Run Code Online (Sandbox Code Playgroud)

请告诉我执行上述操作的查询...

sql sql-delete

70
推荐指数
3
解决办法
23万
查看次数

删除MySQL中的数百万行

我最近发现并修复了我正在处理的网站中的一个错误,导致表中数百万个重复的数据行即使没有它们也会非常大(仍然是数百万).我可以很容易地找到这些重复的行,并可以运行单个删除查询来终止它们.问题是尝试一次性删除这么多行会长时间锁定表,如果可能的话我想避免这种情况.我可以看到摆脱这些行的唯一方法,而不是取下网站(通过锁定表):

  1. 编写一个脚本,在循环中执行数千个较小的删除查询.这理论上会解决锁定表问题,因为其他查询将能够进入队列并在删除之间运行.但它仍然会在数据库上加载相当多的负载,并且需要很长时间才能运行.
  2. 重命名表并重新创建现有表(它现在将为空).然后在重命名的表上进行清理.重命名新表,将旧表命名并将新行合并到重命名的表中.这需要采取相当多的步骤,但应该以最小的中断完成工作.这里唯一棘手的部分是所讨论的表格是一个报表,所以一旦它重新命名,而空的一个放在它的位置,所有历史报告都会消失,直到我把它放回原位.此外,由于存储的数据类型,合并过程可能会有点痛苦.总的来说,这是我现在可能的选择.

我只是想知道是否有其他人之前有这个问题,如果是这样,你如何处理它而不取下网站,并希望,如果有任何中断用户?如果我使用2号或类似的方法,我可以安排这些东西在深夜运行并在第二天早上进行合并,并且让用户提前知道,这不是什么大问题.我只是想看看是否有人有更好或更简单的方法来进行清理.

mysql maintenance query-performance sql-delete

68
推荐指数
6
解决办法
6万
查看次数

如何在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')
;
Run Code Online (Sandbox Code Playgroud)

这是DELETE我提出的陈述:

DELETE FROM tableA
WHERE (SELECT q.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'))
;
Run Code Online (Sandbox Code Playgroud)

当我尝试运行此语句时,我不断收到此错误:

ERROR IN …
Run Code Online (Sandbox Code Playgroud)

sql select advantage-database-server where-clause sql-delete

67
推荐指数
3
解决办法
32万
查看次数

使用Mysql中的id从表中删除许多行

我是一名Linux管理员,只掌握Mysql查询的基本知识

我想使用id删除许多表条目,这些表条目是我的表中的ip地址,

目前我正在使用

DELETE from tablename where id=1;
DELETE from tablename where id=2;
Run Code Online (Sandbox Code Playgroud)

但我必须删除254个条目,所以这个方法需要几个小时,我怎么能告诉mysql删除我指定的行,因为我想跳过删除254中的一些条目.

删除整个表并导入所需的条目不是一种选择.

mysql sql sql-delete

65
推荐指数
5
解决办法
15万
查看次数

按ID删除数百万行的最佳方法

我需要从PG数据库中删除大约200万行.我有一个我需要删除的ID列表.但是,我尝试这样做的任何方式都需要几天时间.

我尝试将它们放在一个表中,并在100个批次中进行.4天后,这仍然在运行,只删除了297268行.(我必须从ID表中选择100个id,删除该列表中的IN,从ids表中删除我选择的100个).

我试过了:

DELETE FROM tbl WHERE id IN (select * from ids)
Run Code Online (Sandbox Code Playgroud)

那也是永远的.很难判断多久,因为我看不到它的进展直到完成,但查询仍然在2天后运行.

当我知道要删除的特定ID时,只需要寻找从表中删除的最有效方法,并且有数百万个ID.

sql postgresql bigdata postgresql-performance sql-delete

63
推荐指数
2
解决办法
5万
查看次数

在SQL中,UPDATE总是快于DELETE + INSERT吗?

假设我有一个包含以下字段的简单表:

  1. ID:int,autoincremental(identity),主键
  2. 名称:varchar(50),唯一,具有唯一索引
  3. 标签:int

我从不使用ID字段进行查找,因为我的应用程序总是基于使用Name字段.

我需要不时更改Tag值.我正在使用以下简单的SQL代码:

UPDATE Table SET Tag = XX WHERE Name = YY;
Run Code Online (Sandbox Code Playgroud)

我想知道是否有人知道上述内容总是比以下更快:

DELETE FROM Table WHERE Name = YY;
INSERT INTO Table (Name, Tag) VALUES (YY, XX);
Run Code Online (Sandbox Code Playgroud)

再次 - 我知道在第二个例子中ID被更改,但它对我的应用程序无关紧要.

sql sql-insert sql-delete

62
推荐指数
7
解决办法
10万
查看次数

TRUNCATE与DELETE FROM的优缺点

有人可以让我快速概述使用以下两个陈述的利弊:

TRUNCATE TABLE dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

VS

DELETE FROM dbo.MyTable
Run Code Online (Sandbox Code Playgroud)

看来和完成所有事情似乎他们都做了同样的事情; 但这两者之间是否存在差异?

t-sql sql-server truncate sql-server-2008 sql-delete

59
推荐指数
4
解决办法
5万
查看次数

如何删除和更新Hive中的记录

我已经安装了Hadoop,Hive,Hive JD BC.这对我来说运行良好.但我还是有问题.如何使用Hive删除或更新单个记录,因为MySQL的删除或更新命令在配置单元中不起作用.

谢谢

hive> delete from student where id=1;
Usage: delete [FILE|JAR|ARCHIVE] <value> [<value>]*
Query returned non-zero code: 1, cause: null
Run Code Online (Sandbox Code Playgroud)

hadoop hive sql-delete

59
推荐指数
6
解决办法
25万
查看次数