Sqlite表结构:
id sno
1 100
2 200
3 300
4 400
conn=sqlite3.connect('test.sqlite')
c=conn.cursor()
c.execute("select * from abc")
mysel=c.execute("select * from abc where [id] = 1 ")
out put是:
1 100
不打印 id 和 sno ,即表格的第一行
我如何打印第一行表格以及任何选择
请帮助
答案 0 :(得分:1)
ID
和sno
不是数据,它们是表结构的一部分(列名称)。
如果您想获取列的名称,您需要执行类似
的操作connection = sqllite3.connect('test.sqlite')
cursor = connection.execute('select * from abc')
names = list(map(lambda x: x[0], cursor.description))
答案 1 :(得分:1)
实际上没有包含列名的“第一行”,这只是命令行客户端默认打印出来以帮助您读取返回的记录。
符合dbapi2标准的游标有一个属性description
,它是一个元组列表,包含有关上一个查询返回的数据的信息。每个元组的第一个元素将是列的名称,因此要打印列名,您可以执行类似的操作:
c.execute("select * from abc")
print(tuple(d[0] for d in c.description))
for row in c:
print(row)
这将只打印名称和记录的元组表示。
答案 2 :(得分:0)
如果您想获得表格的详细信息,可以使用以下声明
PRAGMA table_info('[your table name]')
这将返回一个元组列表,每个元组包含有关列的信息
您仍然需要将其添加到使用SELECT
语句
答案 3 :(得分:0)
当您撰写... WHERE id = 1
时,您只能获得该特定记录。
如果你想获得第一条记录,你必须告诉SQLite你想要它:
SELECT id, sno FROM abc WHERE id = 'id'
UNION ALL
SELECT id, sno FROM abc WHERE id = 1
当你已经知道这个特定子查询返回的内容时,你甚至不需要费心去搜索表(因此不需要在表中实际存储列名):
SELECT 'id', 'sno'
UNION ALL
SELECT id, sno FROM abc WHERE id = 1