Как вывести запросом все строки по условию?

Делаю бота. Нужно вывести из БД все запииси, у которых столбец 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)
   
→ Ссылка