我想增加基于另一个的sqlite列的值

时间:2020-04-30 03:10:47

标签: python python-3.x sqlite

抱歉,如果我在Python中进行任何大错误编码,我都是新手。我需要知道如何增加表的每一行中的列的值,具体取决于同一个表中其他列的值(在SQLITE3中),例如,如果列“ a”的值小于20,则“ b”列的值将为:b = b + 1000。 我试图用一个foor循环和条件语句来做到这一点,有时它可以工作,但是并不能像我希望的那样工作。 这是te代码:

import os, sys
import sqlite3
import pandas as pd

def con():
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    db_path = os.path.join(BASE_DIR, "data_base.s3db")

    db = sqlite3.connect(db_path)
    cur = db.cursor()
    cur.execute("SELECT * FROM ciudadanos")
    data_ = cur.fetchall()

    data = pd.DataFrame(data_, columns= 
           ['dni','nombre','tn','etc','etc','etc','etc','etc','etc','etc','etc','etc',
           'etc','etc','etc','etc','etc','pn'])
    tn = data['tn']



    def jeil():
        j = 0
        for i in data:
            if '18' >= tn[j]:
                cur.execute("UPDATE ciudadanos SET pn = pn - 1000")            
            elif '18' <= tn[j]:
                cur.execute("UPDATE ciudadanos SET pn = pn + 20")
            elif '80' >= tn[j]:
                cur.execute("UPDATE ciudadanos SET pn = pn- 1000")
            j += 1         

    jeil()
    db.commit()
    cur.close()
con()

0 个答案:

没有答案
相关问题