mysql数据库sql语句删除语句的使用

如图中所建的表,怎么删去p1,p2逆反(11,12的逆反是12,11)的记录,最后剩下id=1,p1=11,p2=12的元素。

问题:表中的数据量大么?大概有多少数据量?
以下SQL已跑通,应满足你的需求

注:b_f 为表名

create table b_f(id int,p1 int,p2 int);
insert into b_f values(1,2,1);
insert into b_f values(2,1,2);
insert into b_f values(3,11,12);
insert into b_f values(4,12,11);
insert into b_f values(5,13,2);
go

 初始化数据:

delete b_f where id in
(
   select id from  b_f where p1  in 
    (select  case when a.p1> a.p2 then a.p1  else a.p2 end  from b_f a, b_f b 
       where  a.p1 = b.p2 and a.p2 = b.p1)
)

删除逆反的p1较的值后的结果:

追问

有3000万条数据,这个有妙招吗?

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-11-15
delete a from table a,table b where a.p1 = p.p2 and a.p1>b.p2

本回答被提问者采纳
第2个回答  2014-11-15
貌似多条数据的话,删除就都删除了,不能够剩余一条吧。
这个感觉还是程序操作比较好吧
第3个回答  2014-11-15
问题不够详细,id列是否为自增唯一列?如果图中1行和2行互换,应该保留哪一行?
第4个回答  2014-11-15
这么牛啊 我也想知道 关注一下

mysql删除一行数据语句
1、打开MySQL客户端并连接到相应的数据库。2、选择要删除数据的数据表。USE database_name;3、使用DELETE语句删除数据。下面是DELETE语句的基本语法:DELETE FROM table_name WHERE condition;其中,table_name是要删除数据的数据表名称,condition是指定要删除哪些行的条件。例如,如果要从名为customers的数...

mysql数据库sql语句删除语句的使用
delete b_f where id in( select id from b_f where p1 in (select case when a.p1> a.p2 then a.p1 else a.p2 end from b_f a, b_f b where a.p1 = b.p2 and a.p2 = b.p1))删除逆反的p1较的值后的结果:...

MySQL数据库应用总结(十)—MySQL数据库数据的插入、更新和删除操作
删除表数据: delete from 表名 where 删除条件;详解:一、 插入数据 MySQL中的insert语句用于向数据库表中插入数据记录。插入数据的方式包括插入完整的记录、插入记录的一部分、插入另一个查询结果,下面将详细介绍这些方法。1. 为表的所有字段插入数据 语法结构: insert into 表名(字段名1,字段名2,…...

MySQL数据库中删除指定数据的简单方法mysql数据库删除
MySQL中有两种常用的删除语句:1、Delete from 表名 where 条件语句,通过指定条件来删除记录:举例:删除表student中name为Tom的记录:DELETE FROM student WHERE NAME=’Tom’2、Drop 表名,该语法用于删除整个表:举例:删除表student:DROP TABLE student 通常情况下只有管理员才有权限进行...

sql 删除语句
1、delete 语句用于删除表中的行。delete语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存 语法:DELETE FROM 表名称 WHERE 列名称 = 值,如:删除student表中姓名为张三丰的学生信息-delete from studentwhere name=‘张三丰’;2、drop (删除表):删除内容...

mysql中删除表中所有数据的sql语句怎么写
truncate 语句的简单说明:一般情况下,删除数据大家都在使用delete语句;这个 truncate 命令很简单,它的意思是:删除表的所有记录;相当于 delete 语句不写 where 子句一样;其语法结构为:TRUNCATE [TABLE] tbl_name;这里简单的给出个示例,我想删除 friends 表中所有的记录,可以使用如下语句:truncate...

一文讲懂SQL删除语句DELETE
1、DELETE语句 若在DELETE语句中省略WHERE条件,则该操作会删除表中所有的记录。注意:此操作不会删除表本身,而是仅清除表中所有数据,保留表结构。举例:删除Teachers表中的所有记录。若遇到以下错误:解决方案:错误发生的原因是Workbench默认开启了Safe Updates功能,限制了对记录的修改和删除。我们可以通过...

mysql删除语句
mysql删除语句如下:1、delete删除一行:delete from student where id=1。2、delete删除多行:delete from student where in (1,2,3)3。3、删除表的所有数据:delete from student,请使用不带where子句的delete语句。语法说明如下:<数据库名>:指定要删除的数据库名。IF EXISTS:用于防止当数据库不...

mysql中如何删除含有某字段的数据
假设有一个名为`students`的表,里面有一个名为`age`的字段,你想删除所有年龄为20岁的学生记录,可以使用以下SQL语句:sql DELETE FROM students WHERE age = 20;在执行此语句之前,请确保已经做好了数据备份,并且明确知道这将删除所有满足条件的记录。总结:在MySQL中删除含有某字段的数据时,关键是...

mysqldelete语法使用详细解析
MySQL DELETE 语法使用详细解析 一、MySQL DELETE 语句概述 MySQL中的DELETE语句用于从数据库表中删除记录。它可以删除一行或多行数据,但必须要明确指定要删除的表以及删除的条件。二、DELETE 语法详解 1. 基本语法结构:DELETE FROM 表名称 WHERE 条件;如果没有WHERE子句,所有记录将被删除。例如:DELETE...

相似回答