sqlalchemy exists for query

前端 未结 4 894
渐次进展
渐次进展 2020-12-24 04:52

How do I check whether data in a query exists?

For example:

users_query = User.query.filter_by(email=\'x@x.com\')

How I can check w

4条回答
  •  忘掉有多难
    2020-12-24 05:10

    For SQL Server, I had to do this:

    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 = '...')
    

    But it's much simpler without 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 = '...'
    

提交回复
热议问题