如何对以numb开头的每一行执行新查询

2024-03-28 09:10:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要对以数字开头的每一行执行查询, 我不想在一个查询中得到所有的行,我想循环查询每一行以一个数字开头,下面是我如何调用它。你知道吗

    number =0
    while number < 10 :
        cursorObj.execute("SELECT * FROM BADGE_UNIQUEID WHERE BADGEID LIKE '?%' " , number)
        try:
            print(cursorObj.fetchall()[0])
        except:
            print("it was none")
        number += 1

它给了我这个错误:

('The SQL contains 0 parameter markers, but 1 parameters were supplied', 'HY000')


Tags: frombadgenumberexecute数字whereselectlike
2条回答

你可以这样试试

 while number < 10 :


    query = 'SELECT * FROM BADGE_UNIQUEID WHERE BADGEID LIKEe '+ "'"+ str(number)+"%'"

    try:
        cur.execute(query)
        print(cur.fetchall()[0])

    except:
        print("it was none")
    number += 1

我建议您在从python(如客户端)进行查询时最好使用一个过程,例如:

 Python

sqlExecSP="""\
        EXEC [dbo].[NameProcedure] @p1 = ?;
        """                     
params = (p1)
cursor.execute(sqlExecSP, params)

 SQL

CREATE PROCEDURE dbo.NameProcedure @p1 varchar(30)
AS
SELECT Top 1 Colum1,Column2 
FROM MyTable
WHERE Colum1 Like '' + @p1 + '%';
GO

相关问题 更多 >