python - 如何使用 sql python 过滤数据的变量列表?
问题描述
我正在尝试使用变量列表ABC过滤数据。
这个变量列表有大约 25 000 个元素。
我的第一种方法是使用 for 循环,所以我过滤了列表的每个元素,但它太慢了!
script="""SELECT CODUSU, DOS, TIP, DTD FROM Dose WHERE (CODUSU IN ('"""+abc[i]+"""')) AND (DTD LIKE '%"""+str(anofinal)+"""') ;"""
现在我认为最好使用类似的东西:
script="""SELECT CODUSU, DOS, TIP, DTD FROM Dose WHERE (CODUSU IN ('06LA006','06LA005')) AND (DTD LIKE '%"""+str(anofinal)+"""') ;"""
但我没有找到如何在我的脚本中传递列表参数。
我到目前为止所尝试的:
conn = pyodbc.connect(r'Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\Tecnico\Desktop\Backup\be.mdb;')
cursor = conn.cursor()
abc=['06LA006','06LA005','13JA001']
script="""SELECT CODUSU, DOS, TIP, DTD FROM Dose WHERE (CODUSU IN ("""%abc""")) AND (DTD LIKE '%"""+str(anofinal)+"""') ;"""
df1 = pd.read_sql_query(script, conn)
banco=banco.append(df1)
print(df1)
banco.to_csv('20'+str(anofinal)+'_d.csv',sep=";", index = False)
有什么建议么?
解决方案
abc=['dw','wda','wiug87']
for ele in abc:
script="""SELECT CODUSU, DOS, TIP, DTD FROM Dose WHERE (CODUSU LIKE ele) AND
(DTD LIKE '%"""+str(anofinal)+"""') ;"""
伙计,我不知道它是否会起作用,但我试过了
推荐阅读
- c# - c# 创建具有泛型类型的类列表
- javascript - Google Drive API Picker 行为怪异
- php - 根据 URL 变量启用或禁用 WooCommerce 产品销售价格
- hive - 多个子查询表达式:Hive
- flutter-upgrade - 升级中断后如何修复颤振?
- postgresql - 为什么在尝试加入别名子查询时会收到 FROM 子句错误?
- java - 从字符串路径列表中获取子元素
- macos - AppleScript 中 Preview.app 的访问权限
- c - 从 insert_beg() 函数出来时,分配给指针的内存不会保留和丢失
- xamarin - 如何在 Xamarin 的 WebView 中设置文本框的默认值?