在没有主键的情况下从MYSQL数据库中删除ROW

时间:2018-05-23 19:07:40

标签: mysql sql database primary-key sql-delete

如何从数据库中删除一行,而不是每行都有唯一输入的列? 例如:

    Surname     Name         Age

    Mark        Oswell       12
    Adrian      Peterson     15
    Mark        Penda        18
    July        Peterson     12

执行此操作的基本方法是:

DELETE FROM ____ WHERE ____

如果我删除WHERE surname = Mark,我不会只删除1行,而是2.解决此问题的最佳方法是使用主键,但我不能使用它(长话,不要问为什么:))。所以我需要另一种方法来解决这个问题。

有没有办法可以删除一行的数量?

例如,假设我要删除Mark Penda 18行。我可以这样做:

DELETE FROM ____ WHERE row = 3

2 个答案:

答案 0 :(得分:4)

数据库表是未排序的集合。一行没有内在数字。

但是,您可以做的只是在所有列上都有条件。如果您想要确定只删除一行,请添加limit cluase:

DELETE FROM mytable
WHERE       name = 'Mark' AND surename = 'Oswell' AND age = 12
LIMIT       1

答案 1 :(得分:0)

就这样做:

delete from my_table where name in ('Oswell')