将2个查询的结果相乘MySQL / Python

raogr8fs  于 2023-03-28  发布在  Python
关注(0)|答案(1)|浏览(158)

我有一个MySQL表中的2对外汇交叉汇率,并希望计算从2对外汇的另一个comination
我的字典是:

dict = {'a' : ['f','g'] , 'b' : ['f','k'] , 'c' : ['h','l'] , 'd': ['h','i'] , 'e': ['b','k'] }

从技术上讲,我想做的就是(对于'a')在表中查找'f',在表中查找'g',然后乘以2来填充'a' ...然后对'b','c','d'做同样的事情...
我在python中运行以下代码

for x in dict :
    mycursor.execute(f"SET @Rate1 = (SELECT `Rate` FROM `param_forex` WHERE `Ticker` LIKE '{dict[x][0]}'); SET @Rate2 = (SELECT `Rate` FROM `param_forex` WHERE `Ticker` LIKE '{dict[x][1]}'); SET @Rate3 = @Rate1 / @Rate2; SELECT @Rate3;")   
        for x in mycursor:
            print(x)

得到了以下错误

mysql.connector.errors.InterfaceError: Use multi=True when executing multiple statements

我哪里搞错了?

py49o6xq

py49o6xq1#

迄今为止的进展(纠正了几个错误后):

  • 尝试multi=真:没有更多的错误信息,但没有打印
  • 我试图避免多个,并为1个项目(而不是循环)
mycursor.execute(f"SELECT (SELECT `Rate` FROM `param_forex` WHERE `Ticker` LIKE 'gbpeur') / (SELECT `Rate` FROM `param_forex` WHERE `Ticker` LIKE 'eurusd')")
    for y in mycursor:
        print(y)

现在我确实得到了一个答案,尽管它不是我所期望的答案:

(None,)

当我直接在MySQL中做时,它给我0. 93(如预期)

相关问题