Звучит так, будто number
иногда не является целым числом, например, пустой строкой.Вы можете справиться с этим на стороне Python, назначив number
на 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
.
в графическом интерфейсе 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, ))