嗨,我在从表中获取所有行并将它们全部打印在一起时遇到了问题,而不是获取一行并逐一返回数据。有没有一种方法可以将所有行合并为一个。
这就是我正在使用的东西:
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 :(得分:1)
您的WHERE
子句将过滤掉其他大部分行,因此,如果您确实想要所有行,则可以使用
SELECT * FROM blacklist
这将返回每一行的每一列,而不是仅返回ID匹配的行。之后,fetchall()
应该可以解决问题。