社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

如何将列表保存到mysql数据库中?

Razzer • 4 年前 • 1580 次点击  

我想把一个包含不和谐邀请的列表保存到我的数据库中。但每次我运行这段代码时,get在数据库中只保存了1项。我试图打印邀请者ID以检查他是否只运行一个项目,但他为每个项目运行代码。那怎么了?为什么get只有一个项目保存到数据库中?

            for invite in invites:

                if invite.inviter is None:
                    continue

                if not ctx.author.guild.get_member(int(invite.inviter.id)):
                    continue

                if int(invite.uses) == 0:
                    continue

                await cursor.execute("SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s IS NOT NULL", (ctx.author.guild.id, invite.inviter.id))
                find_user = await cursor.fetchone()
                if find_user:
                    await cursor.execute("UPDATE guild_invite_count SET real_count = real_count + %s, total_count = total_count + %s WHERE guild_id = %s AND user_id = %s", (int(invite.uses), int(invite.uses), ctx.author.guild.id, invite.inviter.id))
                else:
                    await cursor.execute("INSERT INTO guild_invite_count (guild_id, user_id, real_count, total_count) VALUES (%s, %s, %s, %s)", (ctx.author.guild.id, invite.inviter.id, int(invite.uses), int(invite.uses)))
                print(invite.inviter.id)
                await mydb.commit()

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/129380
文章 [ 1 ]  |  最新文章 4 年前
snakecharmerb
Reply   •   1 楼
snakecharmerb    4 年前

这个SQL

SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s IS NOT NULL

这在逻辑上是不正确的。 AND user_id = %s IS NOT NULL 减少到 AND user_id = true (除非参数为null)。就这么做吧

SELECT * FROM guild_invite_count WHERE guild_id = %s AND user_id = %s