从MySql表中精确选择和删除x行

时间:2013-12-15 07:39:15

标签: mysql sql select sql-delete

我有一个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
...

我该怎么做?

3 个答案:

答案 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)

做这样的事情:

delete from t1 order by id limit 5;

Example

答案 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

,然后使用上述查询