我目前正在使用MySQL Connector/Python查询数据库。在
目前,我正在执行的一个过程如下所示:SELECT some_column FROM some_table WHERE some_column_2 = foo_1;
SELECT some_column FROM some_table WHERE some_column_2 = foo_2;
SELECT some_column FROM some_table WHERE some_column_2 = foo_3;
...
SELECT some_column FROM some_table WHERE some_column_2 = foo_9999;
SELECT some_column FROM some_table WHERE some_column_2 = foo_10000;
我正在运行大量非常相似的查询。在
每个查询的单个结果都很重要。即使给定的查询没有结果。在
不幸的是,当前进行几千次这样的查询的方法非常耗时而且效率极低。在
所以,我的问题是:有没有任何方法可以将这个过程压缩成一个查询,以便它更有效地运行?在
我觉得这在MySQL中应该是完全可能的,我很确定我在这里遗漏了一些东西。在
到目前为止,我已经尝试过使用MySQL Connector/Python的executemany()函数,如下所示:
^{pr2}$
我希望这会为每个单独的查询生成一个结果列表,但是优化了尽可能多的查询。不幸的是,这在MySQL Connector/Python中似乎不起作用,并导致语法错误。在
我猜executemany并不打算与SELECT语句一起使用,而只用于INSERT语句。在
我也在互联网上搜索过执行批量选择查询的方法,但是我还没有找到任何与我的情况相关的东西。在
我想明确指出SELECT some_column FROM some_table WHERE some_column_2 IN (foo_1, foo_2, foo_3, etc);
是不是一个有效的解决方案,因为它不保存每个单独查询的结果(或缺少结果)。在
欢迎对此提供任何帮助。在