python - 当找不到它正在搜索的值(在 SQL 中)时,返回 SELECT 是什么?
问题描述
我正在做一个练习,我需要通过 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.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 [...]")
推荐阅读
- javascript - 我可以集成任何很酷的工作流构建器工具吗?
- java - 无法从 JDBC 连接到 MySQL 数据库,但 MySQLWorkbench 很好
- r - 设置当前用户的路径
- php - Laravel - 如何调用模型类助手然后在视图中显示结果
- excel - 使 LastRow 成为整数的下标超出范围错误
- python - 如何只保留包含特定值的连续数字
- azure-devops - 如何在 MAC 中配置 VSTS-agent?
- c++ - 指针转换是否保持对齐属性?
- linux - Linux命令验证每台机器连接的是哪个交换机
- playframework - 玩 2.3 WS keystore 配置