我有一个使用sqllite和Python的表。表的大小总是有3列,并且可以有许多行。每个单元格都是字符串。以下是示例表:
serial_num date_measured status
1234A 1-1-2015 passed
4321B 6-21-2015 failed
1423C 12-25-2015 passed
。。。。。。在
我的程序提示我输入序列号。它保存为一个名为serialNum的变量。如果serialNum等于表中serial_num列中的任何字符串,如何删除(或覆盖)整行?在
我见过很多关于如何删除(或覆盖)表中的一行的例子,如果我知道所有该行的每个单元格中的值,但我的问题是,只有在每一行中可能相同的单元格是序列号。我需要搜索serial_number列,如果该列中有任何字符串等于serialNum变量的当前值,我需要删除(或覆盖)该行。在
^{pr2}$有人知道一个简单的方法吗?我见过其他人说必须使用ID或临时表,但我希望有更简单的方法来完成我的任务。任何建议都很好。在
我找到了一个可行的解决方案:
sql = "DELETE FROM test WHERE serial_num = ?" c.execute(sql, (serialNum,))
因为某些原因serialNum后面的逗号必须存在。谢谢@Michiel arienforhead start
SQL支持这一点:只需使用delete
或者在这种情况下
^{pr2}$使用SQL时不需要搜索列表。SQL是声明性的:您告诉它使用查询做什么,而不是如何做。不要遍历所有行来检查要删除的行:告诉它要删除什么,数据库引擎将找到满足该目标的最佳/最快方法。在
希望我能很好地解释你的问题
相关问题 更多 >
编程相关推荐