从sqllite数据库中选择特定列时,在Python中以qmark格式传递时返回列名

时间:2016-02-26 15:13:25

标签: python sqlite pandas

我尝试从以下sqllite表中选择一个随机单元格

  consonants   a    b   c
0          d  ad   bd  cd
1          e  ae  NaN  ce
2          f  af   bf  cf

首先,我从c生成随机列['a','b','c'],从r生成随机行['d','e','f']。到目前为止这是有效的。

但是,以下select语句始终返回c的值,而不是c指定的列的值。

x = conn.execute('select ? from syllables WHERE consonants=?',(c,r)).fetchall()
# Returns [('b',)] if c='b' and r='f'

我通过选择所有列*验证了WHERE子句是否正确。

x = conn.execute('select * from syllables WHERE consonants=?',(r)).fetchall()
# Returns [('f', 'af', 'bf', 'cf')] if r='f'

如果我手动检索特定列,例如c ='b'

,它也有效
x = conn.execute('select b from syllables WHERE consonants=?',(r)).fetchall()
# Returns [('bf',)] if r='f'

我真的不明白为什么在用qmark表示法传递时总是返回c的值。

0 个答案:

没有答案