我正在做一个练习,我需要通过python更新SQL DB表中的一些值,但我找不到SELECT返回的值,如果"用户";和另一个";"X条件";在数据库中找不到。
我在另一个线程中读到SELECT应该返回一个空集,但我仍然有问题!
当我运行时:
example = db.execute("SELECT value FROM table1 WHERE user=:user AND X=:Y", user=user, X=Y)
我试着用这样的条件
if example == {}:
db.execute("INSERT [...]")
当集合为空时,我从不进入这个条件来执行INSERT操作。
我找到了另一条途径来解决这个问题(写在下面(,但它有效吗?
if not example:
do the job
编辑:我正在使用sqlite3!
假设您使用的是sqlite3,execute
方法总是返回一个Cursor,您可以使用它来获取结果行(如果有的话(。你在做什么样的查询并不重要。
如果您立即获取的第一个结果为None,则没有返回任何行:
if example.fetchone() is None:
db.execute("INSERT [...]")
或者,您可以将所有行作为列表获取,并将其与空列表进行比较:
if example.fetchall() == []:
db.execute("INSERT [...]")