我需要對以數字開頭的每一行執行查詢,我不想在一個查詢中獲取所有行,我想循環并查詢每一行以數字開頭,這是我嘗試的方法稱它為。 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')
2 回答

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
你可以試試這樣
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

隔江千里
TA貢獻1906條經驗 獲得超10個贊
我建議您在從 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
添加回答
舉報
0/150
提交
取消