在python中删除SQLITE表的第一行

zphenhs4  于 2022-11-24  发布在  SQLite
关注(0)|答案(2)|浏览(280)

这是一个简单的问题,我怎样才能从表中删除第一行而不必给予搜索条件。通常是:

c.execute('DELETE FROM name_table WHERE tada=?', (tadida,))

我只想删除第一行。没有WHERE部分。原因是我想创建一个FIFO表(或堆栈),从底部添加,从顶部删除。我可以通过跟踪时间和日期或给行一个ID来做到这一点。但我更喜欢描述的方法。谢谢。

iq0todco

iq0todco1#

我只想删除第一行
SQL表没有固有的排序,因此没有定义的 * 第一 * 行概念,除非为排序指定了一列(或一组列)。
假设您有一个排序列,比如id,您可以使用limit来限制应该删除哪一行:

delete from mytable order by id limit 1

这将从表中删除具有最小id的记录。

tzdcorbm

tzdcorbm2#

除非使用sqlite的自定义版本,否则不能将ORDER BYLIMITDELETE一起使用。
如果您的sqlite版本没有使用该选项构建(一些操作系统分发的版本是,一些不是),并且使用该选项构建和安装副本超出了您的适应范围,则可以使用另一种方法,假设使用名为id的列进行排序,id的最小值是最早的记录:

DELETE FROM yourtable WHERE id = (SELECT min(id) FROM yourtable);

相关问题