Привет, у меня возникла проблема с извлечением всех строк из моей таблицы и их печатью все в одном, а не с извлечением строки и возвратом данных по одной. Есть ли способ собрать все строки в один.

Вот с чем я работаю:

async def r_list(self, ctx):
    """Gets a list of restricted users."""
    
    guild = ctx.message.guild
    for member in guild.members:
        conn = psycopg2.connect(DATABASE_URL, sslmode='require')
        cursor = conn.cursor()
        cursor.execute("SELECT time, username FROM blacklist WHERE username=%s AND time IS NOT NULL", (member.id, ))
        results = cursor.fetchall()
        for row in results:
            user_id=row[1]
            username = self.bot.get_user(user_id)
            timestamp=row[0].strftime("%#d %b %Y, at %I:%M%p")
            await ctx.send(f"User: {username} Until: {timestamp}")
        
    cursor.close()
    conn.close()
0
Jasme 6 Окт 2020 в 12:55

1 ответ

Лучший ответ

Предложение WHERE отфильтрует большинство других строк, поэтому, если вам действительно нужны все строки, вы можете использовать

SELECT * FROM blacklist

Это вернет каждый столбец из каждой строки, а не только строки, в которых совпадают идентификаторы. Впоследствии fetchall() должен помочь.

1
stijndcl 6 Окт 2020 в 11:01