2017-09-06 4 views
3

여러 행을 키 집합으로 업데이트하는 SQL 문을 만들려고합니다. 나는 각 단일 키에 대한 설명을 가지고 각각을 실행할 수 있다는 것을 알지만, 이것은 "더 정확하다"고 생각하고 훨씬 빠릅니다.파이썬이 SQL의 "IN"문에서 사용되도록 변환 할 수있는 방법이 있습니까?

이 내가있어 무엇 :

def end_actions(self, timestamp, ids): 
     statement = "UPDATE items " \ 
       "SET end_time = " + timestamp + " " \ 
       "WHERE auction IN " + ids + ";" 
     self.execute_statement(statement) 

질문은 내가 SQL의 IN 문에 의해 허용되도록 설정 ID를 포맷 할 방법이다.

감사합니다.

답변

2

ID가 어떤 유형인지 알 수 없습니다. 나는 그것이 정수들의 집합이라고 가정 할 것이다. SQL 절이 WHERE auction IN (1, 2, 3);과 같이 보이기를 원합니다. 따라서 문자열 목록에 map을 설정하고 쉼표 구분 기호로 join에 전달하고 괄호로 묶습니다.

"WHERE auction IN (" + ", ".join(map(str, ids)) + ");" 

편집 : 대신 문자열을 원하는 경우에, 당신이 잘 작동합니다, 그 파이썬 맵 기능이 실현하지 않았다, 처음 따옴표로

"WHERE auction IN (" + ", ".join("'" + id + "'" for id in ids) + ");" 
+0

덕분에 많이 싸서해야 할 수도 있습니다. – PapeK24