2011-05-06 3 views
0

임 대신 여러 %의장고 : 대신 %의

예의 변수 이름을 사용 %의 이 가능를 사용하여 각 매개 변수 메신저를 들어, 원시 SQL 문에 여러 매개 변수를 전달의 사용 변수 이름 :

man = "John" 
wife = "Jane" 
query = "SELECT * FROM person WHERE name = %s and wife = %s" 
cursor.execute(query, [man, wife]) 
+0

원시 DB API를 수행하는 경우 Django와 관련된 이유를 알 수 없습니다. – vartec

답변

0

쿼리하는 모델입니까?

이 쉽게해야 the raw() manager

raw() automatically maps fields in the query to fields on the model.

을 설명하는 문서를 보면 다음과 같음 :

Person.objects.raw('SELECT id, first_name, last_name, birth_date FROM myapp_person') 
+0

쿼리하는 테이블에 수십만 개의 행이 포함되어 있습니다. 효율성 ID는 내 검색어와 관련성이 높습니다. 어떤 아이디어? – sidarcy

+0

또한 DB의 숫자 중 일부는 장고 모델에 적합하지 않기 때문에 DB에 직접 쿼리하고 있습니다. – sidarcy

0

DB의 API 매개 변수 스타일

  • 'qmark' 물음표 스타일 다음 2.0을 정의 , '...WHERE name=?'
  • 'numeric' 숫자 형, 위치 스타일 예 : '...WHERE name=:1'
  • 'named' 명명 된 스타일 입니다. '...WHERE name=:name'
  • 'format' ANSI C printf 형식 코드, '...WHERE name=%s'
  • 'pyformat' 파이썬 확장 포맷 코드 '...WHERE name=%(name)s'

이제 모든 데이터베이스가 모든 것을 구현하는 것은 아닙니다. 사용중인 DB 엔진이 pyformat을 지원하는지 확인하십시오.