【发布时间】:2014-10-27 01:34:32
【问题描述】:
我只想将某个日期插入我的表中。我有这个代码。
当我只使用这段代码时,插入了 csv 中的所有数据
for row in readers:
query4 = """INSERT INTO csv(
csv_id, Mchn, EnNO, Mode1,
IODMd, Date_Time)
VALUES(%s,%s,%s,%s,%s,%r)
"""
db.session.execute(query4 % (row[0], row[1], row[2], row[4], row[5], row[6],))
db.session.commit()
但我只想插入某个日期 所以我尝试在其上添加 WHERE。像这样
for row in readers:
query4 = """INSERT INTO csv(
csv_id, Mchn, EnNO, Mode1,
IODMd, Date_Time)
VALUES(%s,%s,%s,%s,%s,%r)
WHERE Date_Time >= (select c_start_date from c_temp c where c.id = :id)
AND Date_Time <= (select DATE_ADD(c_end_date,interval 1 day) from c_temp c where c.id = :id)"""
db.session.execute(query4 % (row[0], row[1], row[2], row[4], row[5], row[6],))
db.session.commit()
但是当我尝试它时,它有一个错误并停止它。谢谢。
【问题讨论】:
-
python 不是 sql。因此,如果您通过 python 创建插入语句,则必须在 python 中过滤数据。
-
另外,
query4只执行最后一行,而不是 每个 行。我可能会生成 SQL 插入语句并将创建的字符串放在一个列表中,然后创建一个单独的事务以插入。 -
嗨,monkut,我的意思是 MYSQL,我编辑标题 :)