我有这种格式的数据,我想输入到我的mysql数据库的列中。我创建的列为空,值为null。
[(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'"
任何帮助都将不胜感激!
发布于 2020-11-18 02:34:58
对您来说,最快的解决方案是在插入新数据之前删除NULL
列。
您必须通过运行以下命令来完成此操作:
DELETE c FROM city AS c WHERE c.Population IS NULL
然后运行你的INSERT
。
但是,如果您试图UPDATE
Population
字段为NULL
的city
中的现有记录,那么您需要编写一个完全不同的语句。
您的数据集需要包含一个键,就像更新Python字典一样。
dataset =
[(1958000,<key_value>),
(261250,<key_value>),
(205480,<key_value>),
(140580,<key_value>),
(804320,<key_value>),
(652653,<key_value>),
(484990,<key_value>),]
使用这些元组,您将需要创建一个update语句。它的工作方式取决于您正在使用的Python库。但大致是这样的:
WITH ds = dataset:
statement = UPDATE c SET c.Population = ds.<population_value> WHERE c.<key_column> = ds.<key_value>
mysql.update(statment,ds)
https://stackoverflow.com/questions/64884687
复制