Python 当无法找到要搜索的值(在SQL中)时,return选择什么?
我正在做一个练习,我需要通过python更新SQL DB表中的一些值,如果在数据库中找不到用户和另一个X条件,我无法找到SELECT返回的值 我在另一个线程中读到SELECT应该返回一个空集,但我仍然遇到问题 当我跑步时:Python 当无法找到要搜索的值(在SQL中)时,return选择什么?,python,sql,database,select,cs50,Python,Sql,Database,Select,Cs50,我正在做一个练习,我需要通过python更新SQL DB表中的一些值,如果在数据库中找不到用户和另一个X条件,我无法找到SELECT返回的值 我在另一个线程中读到SELECT应该返回一个空集,但我仍然遇到问题 当我跑步时: example = db.execute("SELECT value FROM table1 WHERE user=:user AND X=:Y", user=user, X=Y) 我试着用这样的条件 if example == {}: db.e
example = db.execute("SELECT value FROM table1 WHERE user=:user AND X=:Y", user=user, X=Y)
我试着用这样的条件
if example == {}:
db.execute("INSERT [...]")
当集合为空时,我从不在这个条件下执行插入操作
我找到了另一种方法来解决下面写的问题,但它到底有效吗
if not example:
do the job
编辑:我正在使用sqlite3 假设您正在使用,execute方法总是返回一个游标,您可以使用它来获取结果行(如果有)。不管你在做什么样的查询
如果立即获取的第一个结果为“无”,则不会返回任何行:
如果example.fetchone为None:
db.executeINSERT[…]
或者,您可以将所有行作为列表获取,并将其与空列表进行比较:
如果example.fetchall=[]:
db.executeINSERT[…]
你不知怎么回答了我的问题!我得到了:AttributeError:'list'对象没有属性'fetchone',如果我尝试使用if-example=[],它就像一个符咒!这是一个空列表,不是一个空集合!如果您的示例是一个列表,那么您可能没有使用我想到的模块。。。但不管怎样,我很高兴你找到了答案!我还在学习,我不知道为什么这是一个诚实的清单!非常感谢你的帮助!编辑:可能是因为我正在使用cs50课程中的SQL库: