搜尋

首頁  >  問答  >  主體

python - 使用sqlalchemy操作mysql,如何获取随机几项?

users_query = db_session.query(User).filter(
    ~User.id.in_(followed_user_ids),
    User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
)

用.all()的话,结果太多了,我只想随机要5项,怎么写呢?

查了下stackoverflow已经解决:
http://stackoverflow.com/search?q=sqlalchemy+random

users = users_query.order_by(func.rand()).limit(5)
高洛峰高洛峰2886 天前433

全部回覆(1)我來回復

  • 阿神

    阿神2017-04-17 17:40:33

    是隨機 5 項,還是前 5 項?

    如果是前五項,比較簡單:

    users_query = db_session.query(User).filter(
        ~User.id.in_(followed_user_ids),
        User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
    ).limit(5).all()

    如果是隨機5項,要加一些東西:

    from  sqlalchemy.sql.expression import func
    
    users_query = db_session.query(User).filter(
        ~User.id.in_(followed_user_ids),
        User.status.in_([User.STATUS_NORMAL, User.STATUS_SUPER])
    ).order_by(func.random()).limit(5).all()

    回覆
    0
  • 取消回覆