Pypyodbc查询返回不正确的数据

问题描述 投票:0回答:1

您好这样一个奇怪的一个位,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)

我甚至试图使用fetchall与电子邮件LIKE查询行,但仍然只返回了一个ID,那就是不存在的105524值

SQL服务器是MSSQL服务器2017年和IM运行的Python 3.7.2这似乎也与pyodbc问题以及pypyodbc

我打印语句返回:

SELECT [idPerson] FROM tblPersons WHERE [Email] LIKE 'Joe.Pike%' ['Joe.Pike%'] (105524,) 7271

但这些数字都应该是不同的,并再次确认,当我运行印刷SQL语句在SQL Server开发人员返回正确的数据。

提前致谢

P.S这是未完成的代码,所以请忽略可怕的格式(我也知道我不应该使用位置参数的SQL查询,但我看不到任何其他的方式来实现最终的结果)

python-3.x pyodbc sql-server-2017 pypyodbc
1个回答
0
投票

OMG请拍我!

不正确的数据库,男人,我希望我能删除的问题

© www.soinside.com 2019 - 2024. All rights reserved.