【问题标题】:Python mysql get value from table before insert in the same tablePython mysql 在插入同一个表之前从表中获取值
【发布时间】:2023-01-26 17:26:59
【问题描述】:

我有一张包含不同类型商品编号的表格:

Date -     Artsup - ArtTest - ArtCombo
-------------------------------
01-01-23  -   S1   -    T1    -  S1T1
01-01-23  -   S2   -    T2    -  S2T2

现在我想在同一个表中插入一条新记录,但首先我想检查我是否有可用的“ArtCombo”。

所以现在我首先像这样阅读表格:

cur.execute('SELECT ArtCombo from table1 where ArtTest = %s and Date BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()')
val = (varArtTest)

varArtCombo = value-from-select-query

通过这种方式,我获得了 ArtCombo 值(如果可用)。现在像这样使用这个 ArtCombo 值做一个新的插入

sql = "INSERT INTO table1 (Date, ArtSup, ArtTest, ArtCombo) VALUES (%s, %s, %s, %s)"
val = (datetime.now(tz=None), varArtSup, varArtTest, varArtCombo)

这行得通,但是进行一次查询会不会更容易或更快?如果是这样,如何实现?

【问题讨论】:

  • 但首先我想检查一下我是否有可用的“ArtCombo”" - 你能用不应该添加的记录和应该添加的记录来更新你的帖子吗?也许你可以用一个 INSERT 声明来完成所有事情。
  • 不,我不能,因为最后,这张表每天都有价格信息。可能会出现前一天没有的新文章。此外,数据来自不同的来源。有点复杂,但我需要先检查一下才能插入。

标签: python mysql


【解决方案1】:

解决方案

我选择了一种不同的方法来处理这个问题。在两个 pandas 数据框中转换/捕获我的初始数据。 对帧进行合并并检查“left_only”。这让我与众不同:

df3 = pd.merge(df1, AllItemsFromDatase, indicator=True, how='outer')
newdf = df3[(df3._merge == "left_only")] 

现在,我的项目在 df1 中可用,但在数据库中不可用,这是我的目标。

【讨论】:

    猜你喜欢
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    相关资源
    最近更新 更多