Python mysql在插入同一个表之前从表中获取值

7fyelxc5  于 2023-02-03  发布在  Mysql
关注(0)|答案(1)|浏览(117)

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

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)

这是可行的,但它不是更容易或更快,使这一个单一的查询?如果是这样,如何实现?

qoefvg9y

qoefvg9y1#

溶液
我选择了一种不同的方法来处理这个问题。在两个Pandas Dataframe 中转换/捕捉我的初始数据。对帧进行合并并检查“left_only”。这给了我工作的区别:

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

现在我有了df 1中可用而数据库中不可用的项目,这是我的目标。

相关问题