1

タイプなしでフィールド dad_mmsi が作成される sqllite データベースがあります。

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(ただし、取得するレコードを制御する句を追加する必要があります)。

1 行だけを返すには、 not fetchallbutを使用しますfetchone

于 2012-11-06T15:04:10.617 に答える