cur.execute("""SELECT name, number
FROM store
WHERE number=%s OR name =%s""",
(number, name))
我的问题是数字是INTEGER UNIQUE,当我尝试按数字选择时,一切正常,但是如果我尝试按名称选择,则会收到错误消息:
整数的无效输入语法
答案 0 :(得分:0)
听起来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, ))