Проблема с выполнением запроса в python с помощью cursor.execute () - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть функция set, за которой следует ; в моем запросе и cursor.execute думает, что я запускаю несколько запросов, и говорит, что используется 'multip = true', но на самом деле я просто выполняю один запрос. Как я могу сказать python считать всю мою строку одним запросом?

agent_report_query = """

set @StartDate = '2020-04-01 00:00:00';

set @EndDate = '2020-04-02 00:00:00';

SELECT Дата, имя FROM tbl

WHERE user_calculated_data.date> = @StartDate And user_calculated_data.date <@ EndDate </p>

"""

затем я выполняю это:

    cursor2 = con2.cursor()
    cursor2.execute(agent_report_query)
    AgentReport = cursor2.fetchall()
    print("AgentReport Query executed successfully!")
    for i in AgentReport:
       print(i)

И результат:

mysql .connector.errors.InterfaceError: Использовать multi = True при выполнении нескольких операторов

, если Я использую: cursor2.execute(agent_report_query,multi=False)

результат:

mysql .connector.errors.InterfaceError: Нет результатов для выборки из.

не могли бы вы пожалуйста, помогите мне?

1 Ответ

1 голос
/ 03 апреля 2020

В вашем запросе есть ошибки

Сначала даты должны быть в кавычках

Второй ВЫ ВЫБИРАЕТЕ startemne слишком много запятая

set @StartDate = '2020-04-01 00:00:00';

set @EndDate = '2020-04-02 00:00:00';

SELECT Date, Name FROM tbl
WHERE user_calculated_data.date >= @StartDate And user_calculated_data.date < @EndDate;

Что вы можете сделать также для каждого запроса создается собственный exute

agent_report_query = """
SELECT Date, Name FROM tbl
WHERE user_calculated_data.date >= @StartDate And user_calculated_data.date < @EndDate;
"""

cursor2.execute("set @StartDate = '2020-04-01 00:00:00';")

cursor2.execute("set @EndDate = '2020-04-02 00:00:00';")

cursor2.execute(agent_report_query)

или

, который вы делаете, так что вы не видите, почему вы используете пользовательские переменные вообще для этого запроса

agent_report_query = """
SELECT Date, Name FROM tbl
WHERE user_calculated_data.date >= ? And user_calculated_data.date < ?;
"""
cursor2.execute(agent_report_query,("2020-04-01 00:00:00","2020-04-02 00:00:00"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...