У меня есть функция запроса, где я хочу, чтобы поместить значение динамически.Python MYSQL SELECT, с динамическим значением
query_values = {
"column_value": question["value"],
"value_2": question["value_2"],
"startdate": date_range["start"],
"enddate": date_range["end"]
}
query = (
"SELECT %(column_value)s FROM ga_ad_matched_query "
"WHERE (ga_ad_matched_query LIKE %(value_2)s) AND "
"(stat_date BETWEEN %(enddate)s AND %(startdate)s)"
)
cur.execute(query, query_values)
Все работает хорошо, но если я использую переменную% (column_values) я получаю содержание вопроса ["value"] в результат, а не фактические значения столбца. Если я не использую переменную% (column_values), но использую регулярное имя столбца insted, все работает отлично. .... но он нуждается в этой функции динамически, поэтому мне нужно разместить там% (column_values).
Есть ли ошибка синтаксиса, которую я наблюдаю здесь? Спасибо за помощь.
Это не представляется возможным использовать имена столбцов в качестве параметров запроса. Вам придется либо попытаться избежать имени столбца самостоятельно, либо вставить его в необработанный запрос (потенциально опасный) или получить все столбцы, а затем использовать только некоторые из них (я бы сделал это именно так). – lovasoa
@lovasoa Спасибо за ваше решение. Работает! –