首页 > 解决方案 > discord.py SQLite 获取行内容

问题描述

@client.command()
async def tag(ctx, tag):
    sql.execute(f'select tags_name from tags_list')
    does_exist = sql.fetchone()
    print(does_exist)

    if does_exist is not None:
        sql.execute(f'SELECT tags_content FROM tags_list')
        final = sql.fetchall()
        await ctx.send(final[0])
    else:
        await ctx.send(f"Tag named `{tag}` doesnt exists!")

因此,您在上面看到的代码用于从表中获取内容tags_list

在此处输入图像描述

上面的图像是桌子tags_listtags_content当我调用命令时,我正在尝试获取。但是例如,当我调用类似的命令时.tag test,我希望它给我test,因为它们在同一行。但相反,它tags_content从第一行给出。所以它给出h而不是test. 如何指定要从中获取内容的行?

编辑:这是我运行命令时得到的.tag test('h',)

标签: pythonsqlsqlitediscord.pydiscord.py-rewrite

解决方案


当您从 SQLite 表中选择一行时,您可以使用它WHERE来指定您想要的行。例如:

SELECT tags_content FROM tags_list WHERE tags_name='test'

因此,您可以使用tag参数来指定tags_name何时选择行。

@client.command()
async def tag(ctx, tag):
    sql.execute(f'SELECT tags_content FROM tags_list where tags_name = "{tag}"')
    final = sql.fetchone()
    if final:
        await ctx.send(final)
    else:
        await ctx.send(f"Tag named `{tag}` doesnt exists!")

推荐阅读