Nam's

Flask Study 04 - SQLAlchemy filter, filter_by (or, !=, like) 본문

개발/Back-end

Flask Study 04 - SQLAlchemy filter, filter_by (or, !=, like)

namespace 2021. 2. 17. 17:16

sql의 SELECT를 처음에 filter_by로 익혔는데, filter_by는 사용범위가 꽤 제한적이다.
not equals, or, like 같은 문법을 사용할 수 없고, join안에서도 filter_by를 사용할 수 없다.

그럼에도 model 이름 없이 column 이름 만으로 조건을 추가할 수 있기 때문에 대부분의 경우 filter_by를 사용하고 있다.

filter_by
filter

filter 를 사용해서 !=, or, like을 하는 방법은 아래와 같다.

Not equals !=

user = User.query.filter(User.name != name)

OR

user = User.query.filter((User.email == email) | (User.name == name)).first()

like

user = User.query.filter(User.name.like('%minsoo%'))

 

그 외 sqlalchemy 사용 팁

특정 column 만 select

room = Room.query.filter_by(id=id).with_entities(Room.title).first()

 

참고자료: docs.sqlalchemy.org/en/14/orm/query.html

Comments