删除特定行(由int类型的变量指定)

时间:2013-01-02 05:29:16

标签: php sql pdo

我想通过用户定义的整数(1到rowCount())从我的.sql表中删除一行。下面是伪代码,但它说明了我想要的内容。

$i = 1; //example
$quedb = $db->query("
    DELETE *
        FROM table
        WHERE ROWNUMBER = '$i'
");

有没有办法在SQL环境中执行此操作?我不想删除基于特定元素的行(我的朋友建议查询我定义的行中的元素,但我只想删除第n行,其中n是用户定义的)。

2 个答案:

答案 0 :(得分:1)

你不应该那样做 “第n行”在数据库的上下文中是无意义的 数据库与您熟悉的列表不同。他们根本没有预定义的订单。 数据库是一个抽象的行,其排序仅在选择时间总是不同的,基于选择订购的字段。

要识别一行,您必须使用唯一标识符,这是为了达到这个目的而发明的。
因此,将id auto_incremented主键字段添加到表中并使用它来标识行。 “其他表”不仅是保持一致性的理由。无论您是添加还是删除某些行,您站点上的链接也需要一致的寻址。

如果要枚举输出,请在选择时使用PHP进行输出。这是唯一正确的方法。

请在发明自己的轮子之前,先了解数据库设计的基础知识 或者至少遵循更有经验的人的好建议。

答案 1 :(得分:-1)

您可以使用嵌套查询来执行此操作。像这样......

从公司中id的表中删除(从表限制5,1中选择id)

但实际上不建议这样做,因为行为不是很一致。