반응형
SQL“LIKE”문에 해당하는 SQLAlchemy
태그 열에는 '사과 바나나 오렌지'및 '딸기 바나나 레몬'과 같은 값이 있습니다. SQLAlchemy에 해당하는 문을 찾고 싶습니다.
SELECT * FROM table WHERE tags LIKE "%banana%";
Class.query.filter()
이 작업을 수행 하려면 무엇을 전달해야 합니까?
각 열에는 like()
에서 사용할 수있는 메서드가 있습니다 query.filter()
. 검색 문자열이 주어지면 %
양쪽에 문자를 추가하여 양방향으로 하위 문자열로 검색합니다.
tag = request.form["tag"]
search = "%{}%".format(tag)
posts = Post.query.filter(Post.tags.like(search)).all()
위의 답변에 추가하여 솔루션을 찾는 사람은 '좋아요'대신 '일치'연산자를 사용해 볼 수도 있습니다. 편향되고 싶지는 않지만 Postgresql에서 완벽하게 작동했습니다.
Note.query.filter(Note.message.match("%somestr%")).all()
CONTAINS 및 MATCH 와 같은 데이터베이스 함수를 상속합니다 . 그러나 SQLite에서는 사용할 수 없습니다.
자세한 내용은 일반 필터 연산자 로 이동하십시오.
이 코드를 시도
output = dbsession.query(<model_class>).filter(<model_calss>.email.ilike('%' + < email > + '%'))
PostgreSQL like
( 위의 수락 된 답변 참조)을 사용하면 사례가 일치하더라도 어떻게 든 작동하지 않았지만 ilike
(case i nsensisitive like ) 작동합니다.
참고 URL : https://stackoverflow.com/questions/3325467/sqlalchemy-equivalent-to-sql-like-statement
반응형
'programing' 카테고리의 다른 글
GNU make 디버깅 (0) | 2020.11.04 |
---|---|
양식 인증 : 로그인 페이지로 리디렉션 비활성화 (0) | 2020.11.04 |
HTML5 캔버스 텍스트의 스타일을 굵게 및 / 또는 기울임 꼴로 어떻게 지정합니까? (0) | 2020.11.04 |
헤더 또는 URL에 API 키 배치 (0) | 2020.11.04 |
단일 필드를 선택하는 장고 모델 (0) | 2020.11.04 |