30
Sto usando Flask e SQLAlchemy.Multiple order_by sqlalchemy/Flask
Diciamo che ho un modello Utente con campi "popolarità" e "data_created". Voglio fare la seguente domanda:
SELECT * FROM user ORDER BY popularity DESC, date_created DESC LIMIT 10
Come posso fare più ordini da SQLAlchemy? Per uno solo, questo funziona:
User.query.order_by(User.popularity.desc()).limit(10).all()
Devo solo aggiungere un altro order_by? O metti sia popolarità che date_created nel mio ordine corrente? Voglio che la popolarità abbia priorità su date_created per l'ordine.
Grazie mille!
Beh, il fatto è che ho provato 'User.query.order_by (User.popularity.desc(), User.date_created.desc()). Limite (10). all() ' ' User.query.order_by (User.popularity.desc()). order_by (User.date_created.desc()). limit (10) .all() ' ' User.query.order_by (User.date_created.desc()). Limit (10) .all() ' e mi danno risultati diversi ... Quindi sembra che dare un secondo ordine non superi il primo uno né aggiunge la condizione dell'ordine al primo? –
(e nessuna di queste query fallisce, mi danno tutti i risultati, semplicemente non so quale dei primi due è quello che voglio) –
Ok, in realtà entrambi mi danno la stessa risposta, e ho scoperto il sottostante Query SQL (grazie a http://stackoverflow.com/questions/4617291/how-do-i-get-a-raw-compiled-sql-query-from-a-sqlalchemy-expression) e sono davvero le stesse, e quello giusto. Scusa, e grazie mille per la tua risposta! –