标签: sql-delete

删除重复的行,需要在mysql中保留所有行

我想删除基于两列的重复行,但需要保留所有行的1行.

重复行可以超过两行,如,

ID  NAME PHONE
--  ---- ----
1   NIL  1234 
2   NIL  1234 
3   NIL  1234 
4   MES  5989
Run Code Online (Sandbox Code Playgroud)

我想从3以上删除2行中的任意一行并保留1行.

mysql sql sql-delete

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

存储过程删除查询

我有存储过程:

ALTER PROCEDURE [dbo].[k_ShoppingCart_DELETE]

@cartGUID nvarchar

AS

DELETE FROM
  [dbo].[k_ShoppingCart]
WHERE
  CartGUID = @cartGUID
Run Code Online (Sandbox Code Playgroud)

当我执行这个时,

exec dbo.k_ShoppingCart_DELETE '32390b5b-a35a-4e32-8393-67d5629192f0'
Run Code Online (Sandbox Code Playgroud)

结果:0行受影响.

但是,当我尝试这个查询时:

Delete FROM k_ShoppingCart Where CartGUID = '32390b5b-a35a-4e32-8393-67d5629192f0'
Run Code Online (Sandbox Code Playgroud)

结果:2行受影响.

这有什么问题?

database stored-procedures sql-delete

5
推荐指数
1
解决办法
9393
查看次数

mysql where count(column_name)= 1?

这是我正在使用的查询:

SELECT k_id, COUNT(k_id) AS k_count 
FROM template_keyword_link 
WHERE k_id IN(1,2,3,4,5)
GROUP BY k_id;
Run Code Online (Sandbox Code Playgroud)

此查询返回类似
1 |的内容 6
2 | 1
3 | 4
4 | 1
5 | 9

我想添加类似的东西AND COUNT(k_id) = 1 我最终得到
2 | 1
4 | 1

但是我无效使用组功能.

我该怎么做呢?


更新:

我的问题的另一部分是.

这可以用作删除语句吗?

就像是

DELETE FROM 
template_keyword_link tkl
LEFT JOIN keywords k
ON tkl.k_id = k.k_id
WHERE tkl.k_id 
IN(SELECT k_id, COUNT(k_id) AS k_count 
FROM template_keyword_link 
WHERE k_id IN(1,2)
GROUP BY k_id
HAVING k_count = 1);
Run Code Online (Sandbox Code Playgroud)

我明白了 …

mysql sql aggregate-functions mysql-error-1111 sql-delete

5
推荐指数
1
解决办法
8241
查看次数

如果我在mysql中删除了一个删除查询,那么这些行都会被保存吗?

假设我正在运行导入的一半,而不是运行

SELECT COUNT(*) FROM table_being_imported
Run Code Online (Sandbox Code Playgroud)

我点击ctrl+ R,键入table_being_im并点击返回,只是为了发现我刚刚发布的恐怖事件

DELETE FROM table_being_imported
Run Code Online (Sandbox Code Playgroud)

哎呀.所以我点击ctrl+ C并得到告诉:

Ctrl-C -- sending "KILL QUERY 627" to server ...
Ctrl-C -- query aborted.
ERROR 1317 (70100): Query execution was interrupted
Run Code Online (Sandbox Code Playgroud)

它会删除任何行吗?只是假设,当然......

mysql sql-delete

5
推荐指数
1
解决办法
1846
查看次数

删除并加入多个表

码:

create table coltype (coltype varchar(5));

insert into coltype values ('typ1');

create table colsubtype (coltype varchar(5), colsubtype varchar(5));

insert into colsubtype values ('typ2', 'st1');
insert into colsubtype values ('typ2', 'st2');

create table table1 (col1 varchar(5), coltype varchar(5), colsubtype varchar(5));

insert into table1 values ('val1','typ1', 'st1');
insert into table1 values ('val2','typ1', 'st2');
insert into table1 values ('val3','typ1', 'st3');
insert into table1 values ('val4','typ2', 'st1');
insert into table1 values ('val5','typ2', 'st2');
insert into table1 values ('val6','typ2', 'st3');
insert into table1 values ('val7','typ3', …
Run Code Online (Sandbox Code Playgroud)

sql-server join sql-delete

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

了解此SQL查询

我是oracle数据库的新手,可以帮助我理解这个查询.此查询消除了表中的重复项.

DELETE FROM table_name A 
 WHERE ROWID > (SELECT min(rowid) 
                  FROM table_name B 
                 WHERE A.key_values = B.key_values);
Run Code Online (Sandbox Code Playgroud)

欢迎任何改进查询的建议.

编辑:不,这不是家庭作业,我不明白的是,子查询正在做什么以及ROWID > On子查询做什么?

这是查询的来源

sql oracle sql-delete

5
推荐指数
1
解决办法
369
查看次数

在postgresql中恢复已删除的行

运行查询之后

 delete from table tablename

记录可以恢复吗?据我所知,Postgresql只是将记录标记为已删除.

postgresql sql-delete

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

T-SQL删除插入的记录

我知道标题可能看起来很奇怪,但这就是我想要做的:

  1. 我有许多记录的表.
  2. 我想获得一些这些记录并将其插入其他表中.像这样的东西:

    INSERT INTO TableNew SELECT * FROM TableOld WHERE ...

  3. 棘手的部分是我希望我插入的这些行也从原始表中删除.

有没有一种简单的方法可以做到这一点,因为我唯一想到的就是使用临时表来保存所选记录,然后将它们放在第二个表中并从第一个表中删除与它们匹配的行.这是一个解决方案,但有这么多的记录(超过三百万和一半)我正在寻找一些其他的想法......

t-sql select sql-insert output sql-delete

5
推荐指数
1
解决办法
4156
查看次数

SQL-根据列值删除所有表中的行

我有一个包含数百个表的 MySQL 数据库。

我需要删除基于名为“companyId”的公共列的所有表中的记录 - 该列存在于数据库的所有表中。

如何删除所有表中 columnId = somenumber 的所有记录?

先感谢您 !

伊万诺 C.

@SocratesG我尝试了你的存储过程,但我得到以下创建SP的信息:

ERROR 1064:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 '@TableName VARCHAR(128); 附近使用的正确语法。

DECLARE @MyColumn VARCHAR(128);
SET @MyColumn = 'compan' at line 4

SQL Statement:
CREATE PROCEDURE `deletePortalInstance` ()

BEGIN

    DECLARE @TableName VARCHAR(128);
    DECLARE @MyColumn VARCHAR(128);

    SET @MyColumn = 'companyId'

    DECLARE MyCursor CURSOR FOR
        (SELECT OBJECT_NAME(c.id) AS ObjectName 
        FROM dbo.syscolumns c 
        WHERE OBJECTPROPERTY(c.id,'ISTABLE') = 1 --Search for tables only
        AND c.name = @MyColumn)

    OPEN MyCursor 
    FETCH NEXT FROM …
Run Code Online (Sandbox Code Playgroud)

mysql sql sql-delete

5
推荐指数
1
解决办法
9165
查看次数

使用NOT IN的DELETE的性能(选择...)

我有这两个表,并希望从ms_author中删除所有不在author中的作者。

author (160万行)

+-------+-------------+------+-----+-------+
| Field | Type        | Null | Key | index |
+-------+-------------+------+-----+-------+
| id    | text        | NO   | PRI | true  |
| name  | text        | YES  |     |       |
+-------+-------------+------+-----+-------+
Run Code Online (Sandbox Code Playgroud)

ms_author (1.2亿行)

+-------+-------------+------+-----+-------+
| Field | Type        | Null | Key | index |
+-------+-------------+------+-----+-------+
| id    | text        | NO   | PRI |       |
| name  | text        | YES  |     | true  |
+-------+-------------+------+-----+-------+
Run Code Online (Sandbox Code Playgroud)

这是我的查询:

    DELETE
FROM ms_author AS m
WHERE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql postgresql-performance sql-delete

5
推荐指数
1
解决办法
2108
查看次数