首页 > 解决方案 > 在没有主键的情况下从 MYSQL 数据库中删除 ROW

问题描述

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

    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

标签: mysqlsqldatabaseprimary-keysql-delete

解决方案


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

但是,您可以做的只是对所有列都有条件。如果你想更加确定你只删除一行,添加一个limitcluase:

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

推荐阅读