使用Python,如何在SQL查询中仅返回一个值而不是整个行

时间:2019-01-21 20:25:40

标签: python sql sqlite

我有一个SQL数据库文件,其中包含许多列,其中两个是'GEO_ID'和'MED_INCOME'。我正在尝试使用关联的“ GEO_ID”仅检索“ MED_INCOME”列数据。我认为这是可行的:

import sqlite3 as db

def getIncome(censusID):
    conn = db.connect('census.db')
    c = conn.cursor()
    c.execute("SELECT 'MED_INCOME' FROM censusDbTable WHERE GEO_ID = %s" % (censusID)
    response = c.fetchall()
    c.close()
    conn.close()
    return response

id = 60014001001
incomeValue = getIncome(id)
print("incomeValue: ", incomeValue)

这将导致:

incomeValue: [('MED_INCOME',)]

我以为在尝试仅从一列检索数据之前就已经使用了此方法,但是该方法似乎不起作用。如果我要写的话:

c.execute("SELECT * FROM censusDbTable WHERE GEO_ID = %s" % (censusID)

我得到了整行的数据,所以我知道ID在数据库文件中。

我的语法是否存在某种原因,导致该请求导致一个空集?

1 个答案:

答案 0 :(得分:0)

根据@Ernxst的评论,我将请求调整为:

if ( $cat_in_cart )

删除列ID周围的引号,即可解决问题。