Python 在sqlite列中有多个元素
如何为一行中的单个列添加多个元素: 假设我有一个专栏,主题,里面可以有无限多的元素:Python 在sqlite列中有多个元素,python,sqlite,Python,Sqlite,如何为一行中的单个列添加多个元素: 假设我有一个专栏,主题,里面可以有无限多的元素: topics = ['Particle Physics,'Karaoke','jazz'] 我在sqlite中有一个语句: def UpdateElement(new_user,new_topic): new_topic = new_topic + "; " querycurs.execute('''UPDATE First_Data SET topic = (?) WHERE user =
topics = ['Particle Physics,'Karaoke','jazz']
我在sqlite中有一个语句:
def UpdateElement(new_user,new_topic):
new_topic = new_topic + "; "
querycurs.execute('''UPDATE First_Data SET topic = (?) WHERE user = (?)''', (new_topic, new_user))
但是,这将允许每次只在主题列下存在一个元素。如何编辑代码,使其能够向当前主题添加另一个给定元素
如果表中的topic=['Math'],那么我可以将其转换为topic='[Math;Python']。这样,我就可以使用简单的python.join语句来拆分它。通过一个文本字段,您可以存储任何内容。可以将列表存储为分号分隔字符串或json对象字符串。您还可以对列表进行pickle,并将其存储为base64字符串。所有这些解决方案的问题在于,您失去了一定程度的数据访问权限。要计算有多少用户喜欢Jazz主题,您需要读取/拆分文本字段…或者使用更复杂的like语句
由于使用SQL,您可能需要考虑将数据归一化以包括主题表、用户表和带有外键的<强>跨表表,以使用户和主题执行多对多关系。虽然它的设置有点复杂,但当用户主题发生变化时,它可以更简单地更新
如果您使用的是SQLite,请让SQLite处理连接。只是一个想法。