반응형
쿼리에 대한 sqlalchemy가 있습니다.
쿼리의 데이터가 존재하는지 어떻게 확인합니까?
예를 들면 :
users_query = User.query.filter_by(email='x@x.com')
해당 이메일을 사용하는 사용자가 있는지 어떻게 확인할 수 있습니까?
나는 이것을 확인할 수 있습니다
users_query.count()
그러나 그것을 확인하는 방법 이 있습니까?
다음 솔루션은 조금 더 간단합니다.
from sqlalchemy.sql import exists
print session.query(exists().where(User.email == '...')).scalar()
나에게 가장 적합하고 읽기 쉬운 옵션은
session.query(<Exists instance>).scalar()
처럼
session.query(User.query.filter(User.id == 1).exists()).scalar()
어떤 반환 True
또는 False
.
orm 쿼리 API를 사용하여이 작업을 수행 할 방법이 없습니다. 그러나 더 낮은 수준으로 떨어질 수 있으며 sqlalchemy.sql.expression에서 사용할 수 있습니다 .
from sqlalchemy.sql.expression import select, exists
users_exists_select = select((exists(users_query.statement),))
print engine.execute(users_exists_select).scalar()
를 들어 SQL 서버 , 나는이 일을했다 :
from sqlalchemy.sql.expression import literal
result = session.query(literal(True)).filter(
session.query(User)
.filter_by(email='...')
.exists()
).scalar()
print(result is not None)
# Resulting query:
# SELECT 1
# WHERE EXISTS (SELECT 1
# FROM User
# WHERE User.email = '...')
그러나 다음 없이는 훨씬 간단합니다EXISTS
.
result = (
session.query(literal(True))
.filter(User.email == '...')
.first()
)
print(result is not None)
# Resulting query:
# SELECT TOP 1 1
# FROM User
# WHERE User.email = '...'
참조 URL : https://stackoverflow.com/questions/7646173/sqlalchemy-exists-for-query
반응형
'UFO ET IT' 카테고리의 다른 글
sqlite-INSERT 또는 IGNORE가 작동하도록하는 방법 (0) | 2021.01.14 |
---|---|
무 방향 그래프에서 모든주기 찾기 (0) | 2021.01.14 |
HttpPost에서 매개 변수를 사용하는 방법 (0) | 2021.01.13 |
Linux의 변경 사항에 대해 전체 디렉토리 트리를 모니터링하는 방법은 무엇입니까? (0) | 2021.01.13 |
Request.Content.ReadAsMultipartAsync가 반환되지 않음 (0) | 2021.01.13 |