嗨,好奇怪,我正在运行的sql查询是
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
如果我在服务器上运行它,我会得到正确的personID,但是当我在代码中运行它时,我会得到一个不存在的随机personID,现在更奇怪的是,我基于第二个代码查询personID并返回一个值
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查询来获取所有行,但仍然仅返回一个ID,即不存在的105524值
SQL服务器是MSSQL Server 2017,并且正在运行Python 3.7.2 pyodbc和pypyodbc似乎也有问题
我的打印语句返回:
SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%'
['Joe.Pike%']
(105524,)
7271
但是数字应该都不同,并且再次确认我在sql server developer中运行打印的sql语句时,它将返回正确的数据。
预先感谢
PS,这是未完成的代码,因此请忽略可怕的格式(我也知道我不应该对SQL查询使用位置参数,但是我看不到任何其他方式来获得最终结果)
答案 0 :(得分:0)
天哪,请射杀我!
数据库不正确,老兄,我希望我可以删除问题