从Postgres数据库n python获取所有行的问题

时间:2020-10-06 09:55:11

标签: python-3.x postgresql discord.py

嗨,我在从表中获取所有行并将它们全部打印在一起时遇到了问题,而不是获取一行并逐一返回数据。有没有一种方法可以将所有行合并为一个。

这就是我正在使用的东西:

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()

1 个答案:

答案 0 :(得分:1)

您的WHERE子句将过滤掉其他大部分行,因此,如果您确实想要所有行,则可以使用

SELECT * FROM blacklist

这将返回每一行的每一列,而不是仅返回ID匹配的行。之后,fetchall()应该可以解决问题。