2014-07-18 2 views
1

테이블에서 데이터를 가져 오는 데 sqlalchemy을 사용하고 있습니다. 지금은 audit_trail_table이라는 테이블에서 모든 레코드를 가져 오는 것이 예상대로 작동하고 있습니다. 다음과 같이sqlalchemy에서 LIKE 쿼리를 실행하는 방법은 무엇입니까?

select_stmt = select([self.audit_trail_table]).where(self.audit_trail_table.c.id == int(id)) 
row = conn.execute(select_stmt).fetchone() 

는 지금은 여러 열을 LIKE 쿼리를 실행하려면 :

filter_query = #(some value which will work as a filter_query while fetching)records 
filter_stmt = select([self.audit_trail_table]).where(self.audit_trail_table.c.first_name like '%' + filter_query + '%' or self.audit_trail_table.c.last_name like '%') 

을하지만 LIKE에 오류가 있습니다. 이것을 어떻게 할 수 있습니까?

답변

1

그것은`) (같은`단일 위해 노력하고 있습니다

select([self.audit_trail_table]).where(self.audit_trail_table.c.first_name.like('%' + filter_query + '%') or self.audit_trail_table.c.last_name.like('%abc%')) 

http://docs.sqlalchemy.org/en/rel_0_9/core/sqlelement.html#sqlalchemy.sql.operators.ColumnOperators.like

+0

연산자처럼 사용하십시오. 그러나 두 개의'like()'함수를'or'와 결합하면 에러가납니다 :'TypeError :이 절의 부울 값이 정의되지 않았습니다' – Sangram

+0

파이썬에서 OR 연산자 대신 django의 OR 연산자를 사용해야합니다 – Nilesh

+1

예. 대신 sqlalchemy에서'or _()'을 사용했습니다. 도와 주셔서 정말로 고맙습니다 ! – Sangram

관련 문제