当找不到它正在搜索的值(在 SQL 中)时,返回 SELECT 是什么?



我正在做一个练习,我需要通过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 [...]")

最新更新