command = "SELECT * FROM table_name WHERE (name1)=? and (name2)=? ....."
cursor.execute(command, (aaaaa,bbbb,........))
rows = cursor.fetchall()
record_number = len (rows)
字符串 如果该数字大于零,则可以使用以下类型的查询访问各个字段的数据 k =行[a][B] 其中“a”的值表示要访问的记录的编号,“b”的值表示要获取的字段的位置
9条答案
按热度按时间bmvo0sr51#
尝试这种方式
字符串
u0sqgete2#
SQL不能混合单行(计数)和多行结果(从表中选择数据)。这是返回大量数据的常见问题。以下是如何处理此问题的一些提示:
dpiehjr43#
字符串
试试this
drnojrws4#
您可以将它们合并组合成一个语句:
字符串
或
型
7dl7o3gd5#
要获取唯一标题的数量,您需要将DISTINCT子句作为以下语句传递给EQUIPMENT函数:
字符串
来源:http://www.sqlitetutorial.net/sqlite-count-function/
wdebmtf26#
对于那些仍在寻找另一种方法的人,我发现更优雅的方法是使用CTE来获取行的总数。这确保了计数只计算一次:
字符串
唯一的缺点是如果需要一个WHERE子句,它应该同时应用于主查询和CTE查询。
在第一条评论中,Alttag说运行2个查询没有问题。我不同意这一点,除非两者都是唯一事务的一部分。如果不是,源表可以在2个查询之间被来自另一个线程/进程的任何一个线程或进程更改。在这种情况下,计数值可能是错误的。
tkclm6bt7#
一旦你已经有了
select * from XXX
的结果,你就可以在程序中找到数组的长度了,对吗?lymgl2op8#
如果你使用
sqlite3_get_table
而不是prepare/step/finalize,你将在一个数组(“结果表”)中一次获得所有结果,包括列的编号和名称,以及行数。k4emjkb19#
如果您愿意,可以像下面这样简单地知道查询生成的记录数
字符串
如果该数字大于零,则可以使用以下类型的查询访问各个字段的数据
k =行[a][B]
其中“a”的值表示要访问的记录的编号,“b”的值表示要获取的字段的位置