我有一个sqlite3数据库。在某些列中有一些NULL值。
我想要的是遍历每列并将NULL值更新为0?
我可以使用pandas来做,但是我想知道是否可以使用sqlite3来做。
如果可能,那么在MySQL中执行相同的命令即可。
代码:
import sqlite3 as sql
#connect to database
connection = sql.connect("ADARSH.db")
#make a cursor which will move in the database
cursor = connection.cursor()
#execute the different command
def execute(cursor, command):
return cursor.execute(command)
#print the result
def print_result(result):
for var in result:
print(var)
# select every column name
command = """select * from emplyee where 1=0"""
result = execute(cursor, command)
# and store it in a list
col_list = [d[0] for d in result]
#for every column name, replace NULL value with 0
def update_null(cursor, col_list):
for each_col in col_list:
command = "update emplyee set {col_name}='0' where {col_name} is null".format(
col_name=each_col)
execute(cursor, command)
update_null(cursor, col_list)
command = """select * from emplyee """
result = execute(cursor, command)
print_result(result)
此代码未更改我的数据库中的任何内容,并且没有任何错误。
最佳答案
您需要提交并关闭打开的游标,以使更改在数据库中可见。
connection.commit()
cursor.close()
connection.close()
最后,检查更改是否反映在数据库中。
关于mysql - 如何将列中的每个NULL值更新为零?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45003556/