我试图在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: []
答案 0 :(得分:5)
在元组中尝试一个字符串,你也可以在查询中取出():
所以你可以做类似
的事情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))
答案 1 :(得分:0)
我的操作员错误:(我使用了错误的变量,数据库没有返回任何结果,因为它不存在!