Я сейчас пытаюсь выбрать некоторые из конкретных столбцов одной строки из базы данных MySQL, используя python и MySQL-коннектор для моего проекта Flask. Однако, с .fetchone (), результат возвращает None.
В чем может быть причина этой проблемы?
Тестовый сервер находится на Ubuntu 19.04 (Disco), работает под управлением MySql5.7, Python 3.7 и Flask 1.02. Я пробовал разные запросы, например
«SELECT * FROM Table WHERE XXX» или «SELECT count () FROM Table WHERE XXX», все они возвращают некоторые результаты. Я попытался создать временную таблицу с выбранным значением, а затем выбрать нужные столбцы из временной таблицы, результат также Нет, но счетчик () равен 1. Я также попытался выбрать меньшее количество столбцов в запрос, некоторые из них возвращают строку, а некоторые нет.
Для тех запросов, которые возвращают None, я регистрирую выполненные запросы и запускаю их в приложении MySql (как в терминале, так и в WorkBench), результаты не равны None.
cnx = mysql.connector.connect(user=username, password=password,
host=hostname,
database=db)
cur=cnx.cursor()
вот запрос пары, который я пробовал
cur.execute("CREATE TEMPORARY TABLE tmp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci select col1, col2,col4,col5,col8 from Table where primary_key= %s and index=1;",(primary_key,))
cur.execute("SELECT count(*) FROM tmp")
print(cur.fetchone()) // this returns 1
cur.execute("SELECT * FROM tmp")
result=cur.fetchone()
print(result)// this returns None
cur.execute("SELECT * FROM Table where primary_key= %s and index=1;",(primary_key,))
print(cur.fetchone())// this has a result
cur.execute("SELECT count(*) FROM Table where primary_key= %s and index=1;",(primary_key,))
print(cur.fetchone())// this returns 1
cur.execute("SELECT col1, col2 FROM Table where primary_key= %s and index=1;",(primary_key,))
print(cur.fetchone())// this has a result
print(cur._executed)
Следующий запрос является фактическим запросом, который я хочу использовать в своем коде.
cur.execute("SELECT col1, col2, col4, col5,col8 FROM Table where primary_key= %s and index=1;",(primary_key,))
print(cur.fetchone())// this returns None
print(cur._executed)
Я ожидаю, что запрос вернет строку с нужными столбцами.
Я имею в виду, почему некоторые запросы работают, но не тот, который я хочу использовать.
Пожалуйста, помогите мне в этом.