python - 我需要什么 SQL 语句将数据插入当前为“空”的多行?
问题描述
我有这种格式的数据,我想在我的 mysql 数据库中输入一列。我创建的列是空的,具有空值。
[(1958000,),
(261250,),
(205480,),
(140580,),
(804320,),
(652653,),
(484990,),]
我正在使用 python 使用以下代码插入数据:
sql = "INSERT INTO city(Population) VALUES(%s)"
new_column_data = The data I listed above.
mycursor.executemany(sql, new_column_data)
当我运行它时,它将数据插入到从 Population 中所有“null”值开始的行中。
像这样的东西会起作用吗?
sql = "INSERT INTO city(Population) VALUES(%s) WHERE Population = 'null'"
任何帮助将不胜感激!
解决方案
NULL
您最快的解决方案是在插入新数据之前删除列。
你必须通过运行类似的东西来做到这一点:
DELETE c FROM city AS c WHERE c.Population IS NULL
然后运行你的INSERT
.
但是,如果您尝试使用字段为的UPDATE
现有记录,则需要编写完全不同的语句。city
Population
NULL
您的数据集需要包含一个键,有点像更新 Python 字典。
dataset =
[(1958000,<key_value>),
(261250,<key_value>),
(205480,<key_value>),
(140580,<key_value>),
(804320,<key_value>),
(652653,<key_value>),
(484990,<key_value>),]
使用这些元组,您将需要创建一个更新语句。其工作原理取决于您使用的 Python 库。但类似这样的事情:
WITH ds = dataset:
statement = UPDATE c SET c.Population = ds.<population_value> WHERE c.<key_column> = ds.<key_value>
mysql.update(statment,ds)
推荐阅读
- javascript - Javascript骰子游戏:如何根据骰子结果删除HP?
- php - php中的数学问题
- sql-server - SQL Server 2008 结果透视
- vue.js - 我对 Vue 组件结构有一些疑问
- html - 如何在html中显示当地时间?
- javascript - 在节点js中获取json变量的嵌套属性
- linux - 禁用 TTY 中的行缓冲但保持启用 Ctrl+D
- java - Cant get Extras from intent when application is in background
- python - 多次拆分字符串并将结果作为新的DataFrame返回
- css - 使用css单击按钮时左右滑动