我试图在SQL的where子句中传递一个Pandas Dataframe列。此列的类型为string。
bill_id, product_name
101, prod_a
102, prod_b
103, prod_c
104, prod_d
prod_list = ','.join(["'" + str(x) + "'" for x in df['product_name'].tolist()])
字符串
我尝试在SQL的where子句中传递产品名称,如下所示:
query = """select prod_id, product_name from products where product_name in (%s)""" % prod_list
型
然而,当我知道列表中的值有匹配时,这似乎返回一个空的Dataframe
1条答案
按热度按时间yhived7q1#
处理这个问题的一种常见方法是使用对应于输入列表的正确数量的占位符手动构建
WHERE IN (...)
子句。然后,像通常那样将该列表绑定到语句。字符串
请注意,对于一个包含3个元素的产品输入列表,上面的代码片段将生成以下原始SQL查询:
型