Не могу выбрать строку SQLite по двум параметрам
необходимо выбрать строку, которая будет удовлетворять двум условиям. Пробовал сделать так:
cursor.execute(
"""SELECT id FROM nat WHERE city = {city} AND sex = {sex} ORDER BY RANDOM() LIMIT 1""".format(city=city_, sex=sex_))
но выдает ошибку синтаксиса. Помогите решить проблему
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
"""SELECT id FROM nat WHERE city = '{city}' AND sex = '{sex}' ORDER BY ...
Автор решения: gil9red
→ Ссылка
Лучше делать через биндинг параметров:
sql = "SELECT id FROM nat WHERE city = ? AND sex = ? ORDER BY RANDOM() LIMIT 1"
cursor.execute(sql, (city, sex_))
В качестве бонуса получите защиту от sql-инъекции