我想在我现有的和填充的数据库上运行这个查询:
SELECT queries_left FROM 'queries' WHERE 'user_id' = 12345
它在 SQLiteStudio 上运行流畅并给出所需的整数值。
我想通过python运行这个查询,所以我尝试了以下:
def user_status(self, user_id):
with self.connection:
return self.cursor.execute("SELECT queries_left FROM 'queries' WHERE 'user_id' = ?", (user_id,)).fetchall()
但是调用user_status(12345) 只返回[]
那有什么问题?
注意:其中 user_id - 数据库中已经存在的某个整数
答案 0 :(得分:0)
不要在表名和列名周围加上单引号:
def user_status(self, user_id):
with self.connection:
return self.cursor.execute("SELECT queries_left FROM queries WHERE user_id = ?", (user_id,)).fetchall()
单引号表示字符串文字。如果确实需要对表名或列名进行转义,请使用双引号。以下内容也应该有效:
def user_status(self, user_id):
with self.connection:
return self.cursor.execute('SELECT queries_left FROM "queries" WHERE "user_id" = ?', (user_id,)).fetchall()