如何通过列名和匹配行值从SQLite3表中检索值

v1uwarro  于 2023-01-09  发布在  SQLite
关注(0)|答案(1)|浏览(156)

我有一个如下所示的表(摘要,第一行是列名):

'hand_total', '2', '3', '4', '5', '6', '7', '8', '9', '10', 'A'
('5', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H')
('6', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H', 'H')
('7', 'H', 'D', 'D', 'D', 'D', 'H', 'H', 'H', 'H', 'H')
('8', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'H', 'H')
('9', 'H', 'D', 'D', 'D', 'D', 'H', 'H', 'H', 'H', 'H')
('10', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'H', 'H')
('11', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'H')
('12', 'H', 'H', 'S', 'S', 'S', 'H', 'H', 'H', 'H', 'H')
('13', 'S', 'S', 'S', 'S', 'S', 'H', 'H', 'H', 'H', 'H')

我希望能够使用一个python变量,根据表头名称和'hand_total'列中的值从该表中选取一个值。例如,如果我想要一个'3'列和hand_total=='11'所在行相交处的值,我希望返回值为'D',但无论我怎么尝试,似乎都无法让sqlite3查询返回我所期望的值。
我尝试过

cur == conn.cursor()
cur.execute("SELECT 3 FROM test_table")
results = cur.fetchall()

我希望上面的代码返回标题为“3”的列中的所有列值,但是我得到的结果只是显示

[(3,), (3,), (3,), (3,) ....]

直到db的所有长度

b5buobof

b5buobof1#

如果列名不是标识符,请使用双引号(ANSI SQL)、反引号(如MySQL)或方括号(如SQL-Server)对其进行转义。

cur.execute("""SELECT "3" FROM test_table WHERE hand_total = 11""")

相关问题