我有一个sqllite数据库,其中创建的字段dad_mmsi没有类型:
c.execute('''CREATE TABLE IF NOT EXISTS AIS_anoniem
(dad_mmsi, dad_navstatus......)'''')
当我获取最高结果时;
c.execute('SELECT DISTINCT dad_mmsi FROM AIS')
print c.fetchall()[0]
打印:
(u'456000001',)
这与我输入的内容不同,因为它被转换为元组。
编辑:因为它是一个元组,我需要访问我想要的值的索引:
print c.fetchall()[0][0] == '456000001'
给了我:
'true'
答案 0 :(得分:2)
fetchall
返回行列表,每行是列的列表(元组)。
所以这是正确的。
您使用DISTINCT
的查询未返回最高结果,它会返回所有唯一值。
要仅返回第一个结果,请使用
SELECT dad_mmsi FROM AIS LIMIT 1
(但你应该添加一个ORDER BY
子句来控制你得到的记录。
要仅返回一行,请不要使用fetchall
,而应使用fetchone
。