Не могу выбрать строку 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-инъекции

→ Ссылка