sql - 整数唯一时的 PostgreSQL SELECT - 无效的输入语法
问题描述
cur.execute("""SELECT name, number
FROM store
WHERE number=%s OR name =%s""",
(number, name))
我的问题是数字是唯一的整数,当我尝试按数字选择时一切正常,但是如果我尝试按名称选择,我收到一个错误:
整数的无效输入语法
解决方案
听起来number
有时不是整数,例如空字符串。number
您可以在 Python 端通过分配给None
任何时候int(number)
无效来处理这个问题:
try:
number = int(number)
except ValueError:
number = None
cur.execute("""SELECT name, number
FROM store
WHERE number=%s OR name =%s""",
(number, name))
cur.execute
将处理None
为NULL
.
在 GUI tkinter 中,我希望可以选择仅通过提供名称或编号来搜索我的数据库,而不是同时提供两者
如果您想按number
(第一)或name
(第二)搜索,但不要同时搜索,请使用
import psycopg2
try:
cur.execute("""SELECT name, number
FROM store
WHERE number=%s""", (number, ))
except psycopg2.DataError:
cur.execute("""SELECT name, number
FROM store
WHERE name=%s""", (name, ))
推荐阅读
- python - 手动清除 Python 缓存工具
- android - 如何从 Android 手机使用 Cordova Geolocation 插件获取地理位置?
- javascript - 在父组件中增加子组件时如何更新子组件?
- amazon-web-services - AWS - DecodeAuthorizationMessage 未授权解码消息
- powershell - 如何使用 powershell 中的函数更改变量的值?
- java - 在 Netty 4.x 中服务器没有实现客户端发送的消息
- android - org.kodein.di.Kodein$NotFoundException:发现 2 个与 bind() 匹配的绑定
- javascript - 根据键搜索和更新数组
- eclipse - Eclipse Markdown 预览编辑器坏了?
- sql-server - 将 SQL Server 备份文件还原到 AWS RDS 实例时增加了备份文件的大小