我有一个MySql表(pin_codes)。 首先,我想从这个表中精确选择200行并导出它们,然后我想删除这200行。
如果此表的ID是连续的,我可以这样做:
SELECT * FROM pin_codes WHERE id<200 and id>1;
DELETE FROM pin_codes WHERE id<200 and id>1;
但ID是这样的:
52138
52139
52141
52142
52144
52147
52148
52157
52158
...
我该怎么做?
答案 0 :(得分:3)
Select * from pin_codes order by id limit 200
会根据ID为您提供前200行,然后您可以删除这200个ID
Delete from pin-codes order by id limit 200
删除前200行
最佳做法是使用列名而不是*(查询优化)
答案 1 :(得分:0)
答案 2 :(得分:-1)
MySQL的:
SELECT * FROM table1
ORDER BY ID DESC
LIMIT 200
Sql Server:
Select FROM table1
WHERE id IN
(
SELECT TOP 200
id
FROM table1
WHERE YourConditions
ORDER BY ExplicitSortOrder
)
上面的查询将删除特定的行子集,您应该明确指定子查询的顺序:
要删除200行,请将Select
关键字更改为Delete