我试图在sql查询中传递三个变量。这些是区域,功能,newUser。我正在使用SQL驱动程序SQL Server Native Client 11.0。

这是我的代码。

query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS  WHERE Region = ?"

data_df = pd.read_sql_query((query),engine,params={region})

输出。
     LicenseNo
 0           12
 1            5

相反,我想传入三个变量,此代码不起作用。
query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS WHERE Region = ? and FeatureName = ? and NewUser =?"

nnu_data_df = pd.read_sql_query((query),engine,params={region, feature, newUser})

输出返回一个空的数据帧。
Empty DataFrame
Columns: [LicenseNo]
Index: []

最佳答案

在元组中尝试一个字符串,也可以在查询中取出():

所以你可以做类似的事情

query = "SELECT LicenseNo FROM License_Mgmt_Reporting.dbo.MATLAB_NNU_OPTIONS WHERE Region = ? and FeatureName = ? and NewUser =?"
region = 'US'
feature = 'tall'
newUser = 'john'
data_df = pd.read_sql_query(query, engine, params=(region, feature , newUser))

关于python - 如何使用pandas pd.read_sql_query使用多个参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40180884/

10-13 00:52