没有主键就从MYSQL数据库删除ROW

Vla*_*lad 2 mysql sql database primary-key sql-delete

如何在不具有每一行唯一输入的列的情况下从数据库中删除一行?例:

    Surname     Name         Age

    Mark        Oswell       12
    Adrian      Peterson     15
    Mark        Penda        18
    July        Peterson     12
Run Code Online (Sandbox Code Playgroud)

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

DELETE FROM ____ WHERE ____
Run Code Online (Sandbox Code Playgroud)

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

有什么办法可以删除行号?

例如,假设我要使用删除行Mark Penda 18。我可以做类似的事情吗:

DELETE FROM ____ WHERE row = 3
Run Code Online (Sandbox Code Playgroud)

Mur*_*nik 5

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

但是,您可以做的就是在所有列上都有条件。而且,如果您想确保自己仅删除一行,请添加一条limit规则:

DELETE FROM mytable
WHERE       name = 'Mark' AND surename = 'Oswell' AND age = 12
LIMIT       1
Run Code Online (Sandbox Code Playgroud)