1

我有一个 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' 
4

1 回答 1

2

fetchall返回一个行列表,每一行是一个列的列表(元组)。所以这是正确的。

您的查询DISTINCT不返回顶部结果,它返回所有唯一值。要仅返回第一个结果,请使用

SELECT dad_mmsi FROM AIS LIMIT 1

(但您应该添加一个ORDER BY子句来控制您获得的记录)。

要仅返回一行,请使用 not fetchallbut fetchone

于 2012-11-06T15:04:10.617 回答