파이썬 MySQLDB IN 절에서 사용하기 위한 목록 내파

| | | | | | | | | | | | | | | |

목록을 문자열에 매핑하는 방법을 알고 있습니다.

foostring = ";".join( map(str, list_of_ids) ) 

그리고 다음을 사용하여 해당 문자열을 IN 절로 가져올 수 있다는 것을 알고 있습니다.

cursor.execute("DELETE FROM foo.bar WHERE baz IN ("%s")" % ( foostring)) 

내가 필요한 것은 MySQLDB를 사용하여 동일한 일을 안전하게(SQL 주입 방지) 달성하는 것입니다. 위의 예에서는 foostring이 실행 인자로 전달되지 않기 때문에 취약하다. 또한 mysql 라이브러리 외부에서 인용하고 이스케이프해야 합니다.

(관련 SO 질문

이 있습니다. > 그러나 거기에 나열된 답변은 MySQLDB에서 작동하지 않거나 SQL 주입에 취약합니다.)