Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 1, 2014 04:47:28

Babai84
Зарегистрирован: 2014-09-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с условием поиска в БД

Есть БД с ФИО определенных лиц. Все это находится в отдельных столбцах. Пользователю предлогается вести сначало фамилию, потом имя, а затем очество. С этим все понятно и все работает, а вот если он знает только фамилию? Как сделать чтоб запрос игнорировал имя и очество? Чувствую, что ответ простой, но вот додуматься не могу. Вот кусочек кода. чтоб понятнее было о чем я говорю.

<p>import sqlite3
con = sqlite3.connect(“FIO.db”)
cur = con.cursor()

surname = input(“Введите фамилию: ”)
name = input(“Введите имя: ”)
lastname = input(“Введите отчество: ”)

cur.execute(“select * from data where surname=? and name=? and lastname=?”, (surname, name, lastname, ))
print(cur.fetchmany())

con.commit()
cur.close()
con.close()
input()</p>

Офлайн

#2 Окт. 1, 2014 05:08:10

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Помогите с условием поиска в БД

Ну соберите запрос по частям

query = "select * from data where surname=?"
params = [surname]
if name:
	query += "  and name=?"
	params.append(name)
if lastname:
	query += " and lastname=?"
	params.append(lastname)
cur.execute(sql, params)
А вообще для таких случаев хороши ORM.




Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Окт. 1, 2014 06:27:59

Babai84
Зарегистрирован: 2014-09-17
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с условием поиска в БД

Спасибо!!! )) Выручили!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version