Mysql 用于从表中删除所有内容并仅保留必需行的SQL查询
下面是MySQL中的Mysql 用于从表中删除所有内容并仅保留必需行的SQL查询,mysql,sql,Mysql,Sql,下面是MySQL中的测试表 fid sid data A B 67 C D 54 E F 53 G H 26 I J 23 K L 17 M N 64 O P 83 Q R 93 S T 45 U V 98 W X 28 Y Z 51 这张表每天都会得到更多的数据。现在我的目标是在这里只保留几行,并从这里删除所有其他行。现在要保留哪些行,必须从另一个表中获取。 让我们举一个例子,我们只需要保
测试表
fid sid data
A B 67
C D 54
E F 53
G H 26
I J 23
K L 17
M N 64
O P 83
Q R 93
S T 45
U V 98
W X 28
Y Z 51
这张表每天都会得到更多的数据。现在我的目标是在这里只保留几行,并从这里删除所有其他行。现在要保留哪些行,必须从另一个表中获取。
让我们举一个例子,我们只需要保留(fid=I和sid=J)和(fid=s和sid=T)以及(fid=C和sid=D)的行。现在我需要一个只保留这些行的查询,从这里删除所有其他内容
我尝试了下面的查询,但似乎不起作用
DELETE FROM `test` WHERE (`fid` != 'I' AND `sid` != 'J') AND (`fid` != 'S' AND `sid` != 'T') AND (`fid` != 'C' AND `sid` != 'D')
请同样帮助我。设置如下条件:
DELETE FROM `test`
WHERE (fid, sid) NOT IN (('I', 'J'), ('S', 'T'), ('C', 'D'))
请参阅。
结果:
如果要保留的行是通过查询获取的,则更改为:
DELETE FROM `test`
WHERE (fid, sid) NOT IN (SELECT col1, col2 FROM .....)
我也得到了这个问题的答案
DELETE FROM `test` WHERE NOT (fid = 'I' AND sid = 'J') AND NOT (fid = 'S' AND sid = 'T') AND NOT (fid = 'C' AND sid = 'D')
DELETE FROM `test` WHERE NOT (fid = 'I' AND sid = 'J') AND NOT (fid = 'S' AND sid = 'T') AND NOT (fid = 'C' AND sid = 'D')