如何解决SQLite3选择查询返回空列表\无值
我正在编写一个python脚本,该脚本接受存储在本地sqlite数据库中的值。
当我执行SELECT
语句时,它返回一个空列表-使用fetchall()
func时,并且使用fetchone()
时返回none值。使用fetchmany()
时也会发生类似情况。
但是当我使用
SELECT *
FROM DB
WHERE FILENAME=###
它正常返回完整值。
[这是第一个问题]
[运行此命令时会发生这种情况]
代码:
con = sqlite3.connect("userdatabase.db")
c = con.cursor()
c.execute('''SELECT DATA FROM main.USERDATAS WHERE FILENAME = "HAI" & FILEEXT="txt"''')
d = c.fetchone()
print(type(d))
print(d)
输出:
<class 'nonetype'>
None
当我使用fetchall()
import sqlite3
con = sqlite3.connect("userdatabase.db")
c = con.cursor()
c.execute('''SELECT DATA FROM main.USERDATAS WHERE FILENAME = "HAI" & FILEEXT="txt "''')
<class 'list'>
[]
当我使用SELECT * FROM USERDATAS
时,效果很好
import sqlite3
con = sqlite3.connect("userdatabase.db")
c = con.cursor()
c.execute('''SELECT * FROM USERDATAS''')
d = c.fetchall()
print(type(d))
print(d)
输出:
<class 'list'>
[('hai','txt','n dfndjkfbhjzvdfzdhnflkjh;k')]
解决方法
SQL中的字符串常量用单引号而不是双引号表示。另外,逻辑“和”运算符是and
,而不是&
:
c.execute('''SELECT DATA FROM main.USERDATAS WHERE FILENAME = \'HAI\' AND FILEEXT=\'txt\'''')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。