2014-01-20 2 views
-1

다음과 같은 python 스크립트가 있습니다. 매개 변수를 받고 DB에서 쿼리합니다. 그러나 변수 abcd을 아래에 언급 된 SQL 문에 전달하는 방법을 모르겠습니다.변수를 Python에서 SQL로 전달하는 방법

ABCD = sys.argv에 [3]

cursor = db.cursor() 
cursor.execute("SELECT COUNT(id) FROM ticket WHERE " 
       "status <> 'closed' AND version = 'abcd' AND id IN (%s)" % ','.join(tickets)) 

난 %의 S와 다른 옵션을 시도했다. 그러나 모든 구문 오류가 발생합니다. 저는 Python을 처음 접했습니다. 어떤 도움을 주셔서 감사합니다.

답변

0

당신은 내가이 방법은 당신에게 도움이 될 것입니다 생각 Django Documentation

의 매개 변수와 함께 원시 SQL 문을 실행하는 방법의 예를 찾을 수 있습니다

cursor = db.cursor() 
cursor.execute("SELECT COUNT(id) FROM ticket WHERE status <> 'closed' AND version = 'abcd' AND id IN (%s)", [','.join(tickets)]) 
+0

그것은 들여 쓰기 오류로 실패 .. –

+0

당신이 들여 쓰기 오류를 수정할 수 있습니다

이 같은 시도? 이 코드가 함수 안에 있습니까? – avenet

0

나는 당신이 string formating 권리를 얻을 필요가 있다고 생각을 .

query = "SELECT count(id) FROM ticket WHERE version = %(version)s and id IN %(tpl)s" % {'version': 1, 'tpl': (1, 2, 3, 4)} 

cursor.execute(query) 
관련 문제