Как вывести запросом все строки по условию?
Делаю бота. Нужно вывести из БД все запииси, у которых столбец worker = CorrySoft.
Пробую сделать это как то так:
c.execute("SELECT * FROM ads WHERE wid = %s",(identi))
while info=c.fetchall()[0]:
bot.send_message(identi,info["title"])
Но так нельзя.
Прошу помочь мне, ибо реально убил много много времени на это.
Ответы (2 шт):
Автор решения: Daniil Kedrov
→ Ссылка
Не очень понятно что конкретно надо сделать. Но запрос SQL будет выглядеть примерно так:
SELECT * FROM ads WHERE worker = "CorrySoft";
затем сохраняете результат в переменную при помощи fetchall() и делаете с данными что хотите
results = cursor.fetchall()
Повторно вызывать fetchall() нельзя.
Автор решения: MaxU
→ Ссылка
Попробуйте так:
from sqlalchemy import create_engine
import pymysql
db_url = 'mysql+pymysql://mysql_user:mysql_password@mysql_host/mysql_db'
conn = create_engine(db_url)
cur = conn.cursor()
qry = "SELECT * FROM ads WHERE wid = %s"
cur.execute(qry, [identi])
for row in cur.fetchall():
# здесь используем кортежи со строками данных, которые мы прочитали из БД
print(row)