Pypyodbc 查询返回不正确的数据
Pypyodbc query returning incorrect data
嗨,有点奇怪,sql 查询 im 运行ning 是
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
如果我在服务器中 运行 这个我得到我正确的 personID,但是当我 运行 它在我的代码中我得到一个不存在的随机 personID,现在更奇怪的是是我的第二位代码查询基于 personID 并且 return 是一个值
UserName = row[1]+'.'+row[2]
Password = 'XXXXXXXX'
Email = UserName + '@XXXXXXX.org.uk'
emaillike = [str(row[1]+'.'+row[2]).replace("'", '')+"%"]
sql = ("""SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE {}""").format(str(emaillike).replace("[","").replace("]",""))
PersonId = cursor.execute(sql).fetchone()
PersonPin = \
str(cursor.execute('SELECT [Pin] FROM tblPersonPins WHERE [PersonId] = ?'
, [PersonId[0]]).fetchone()).replace("'","").replace("(","").replace(")","").replace(",","")
print(sql)
print(emaillike)
print(str(PersonId))
print(PersonPin)
我什至尝试使用 Email LIKE 查询获取所有行,但仍然只 returned 一个 ID,那是不存在的 105524 值
sql 服务器是 MSSQL server 2017 和 im 运行ning Python 3.7.2
这似乎也是 pyodbc 和 pypyodbc
的问题
我的打印语句return :
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
['Joe.Pike%']
(105524,)
7271
但是数字应该不同,当我 运行 在 sql 服务器开发人员中打印 sql 语句时再次确认它 return 是正确的数据.
提前致谢
P.S 这是未完成的代码,所以请忽略糟糕的格式(我也知道我不应该为 sql 查询使用位置参数,但我看不到任何实现最终结果的其他方式)
天啊,请拍我!
不正确的数据库,我希望我可以删除问题
嗨,有点奇怪,sql 查询 im 运行ning 是
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
如果我在服务器中 运行 这个我得到我正确的 personID,但是当我 运行 它在我的代码中我得到一个不存在的随机 personID,现在更奇怪的是是我的第二位代码查询基于 personID 并且 return 是一个值
UserName = row[1]+'.'+row[2]
Password = 'XXXXXXXX'
Email = UserName + '@XXXXXXX.org.uk'
emaillike = [str(row[1]+'.'+row[2]).replace("'", '')+"%"]
sql = ("""SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE {}""").format(str(emaillike).replace("[","").replace("]",""))
PersonId = cursor.execute(sql).fetchone()
PersonPin = \
str(cursor.execute('SELECT [Pin] FROM tblPersonPins WHERE [PersonId] = ?'
, [PersonId[0]]).fetchone()).replace("'","").replace("(","").replace(")","").replace(",","")
print(sql)
print(emaillike)
print(str(PersonId))
print(PersonPin)
我什至尝试使用 Email LIKE 查询获取所有行,但仍然只 returned 一个 ID,那是不存在的 105524 值
sql 服务器是 MSSQL server 2017 和 im 运行ning Python 3.7.2 这似乎也是 pyodbc 和 pypyodbc
的问题我的打印语句return :
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
['Joe.Pike%']
(105524,)
7271
但是数字应该不同,当我 运行 在 sql 服务器开发人员中打印 sql 语句时再次确认它 return 是正确的数据.
提前致谢
P.S 这是未完成的代码,所以请忽略糟糕的格式(我也知道我不应该为 sql 查询使用位置参数,但我看不到任何实现最终结果的其他方式)
天啊,请拍我!
不正确的数据库,我希望我可以删除问题