我使用vscode,希望用python的pymssql库,从sqlserver中取得数据,我用了cursor.execute(sql)来执行从sqlserver取数的语句
若是执行“select * from table_name”可以通过fetchall()得到数据
但若执行“select * from table_name like column like 'pattern' ”的模糊搜索语句结果就是为空
代码如下:
server = "192.168.18.72" # 连接服务器地址
user = "sft" # 连接帐号
password = "abcABC321" # 连接密码
conn = pymssql.connect(server, user, password, "mcdp",charset='cp936') # 获取连接
cursor = conn.cursor() # 获取光标
product = '缝线'
sql1 = ("select * from mykj_product mp where product_name like '%%%s'") % (product)
data = cursor.execute(sql1)
data_name = data[0]
sql1的执行结果如下图:
我在sqlserver上运行的结果
请各位指教,谢谢啦
%s不能加‘’的
参考:https://blog.csdn.net/iceou/article/details/116464331
少了一句,改为这样就好了:
data = cursor.execute(sql1)
data = cursor.fetchall()
data_name = data[0]
游标查询到的内容会保存在一个地方,不会直接打印到屏幕上,它提供游标接口给我们用。
cursor.execute(SQL)之后,可以用fetchone() 或 fetchall() 或 fetchmany(n) 函数来获取查询结果。