微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLite3选择查询返回空列表\无值

如何解决SQLite3选择查询返回空列表\无值

我正在编写一个python脚本,该脚本接受存储在本地sqlite数据库中的值。

当我执行SELECT语句时,它返回一个空列表-使用fetchall() func时,并且使用fetchone()时返回none值。使用fetchmany()时也会发生类似情况。

但是当我使用

SELECT * 
FROM DB 
WHERE FILENAME=###

它正常返回完整值。

[这是第一个问题]

[运行此命令时会发生这种情况]

sqlite3

代码

 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] 举报,一经查实,本站将立刻删除。