Моя строка запроса в dict используется для фильтрации данных в предложении WHERE.
parameters =
{
"manufacuturerId": "1",
"fileName": "abc1234 ",
"categoryName": "normal"
}
И запрос SQL в виде:
fileSql = "select * from file_table as a
left join category_table as b
on a.fId = b.fId
left join manufacturer_table as c
on c.mId = a.mId
where c.manufacturerId = %(manufacturerId)s and
a.file_name = %(fileName)s and
b.name = %(categoryName)s ;"
cursor.execute(fileSql,(parameters))
Это хорошо работает для привязки значения dict к SQLзапрос на основе ключа с использованием параметризованных запросов.
Но этот способ не будет гибким, если моя строка запроса изменится на
{
"manufacuturerId": "1",
"fileName": "abc1234 "
}
Тогда код умрет.
Единственный manufacuturerId является обязательным, а пара ключ-значение для других необязательна для дальнейшей фильтрации.
Как оптимизировать код?