Mohssen A Mohssen نشر 3 يناير 2022 أرسل تقرير نشر 3 يناير 2022 لدي نموذج User وأريد أن أرتب المستخدمين بناءً على العمود likes و created_at بحيث يتم تنفيذ تعليمة SQL التالية: SELECT * FROM users ORDER BY likes DESC, created_at DESC LIMIT 10 حاولت أن أقوم بتنفيذ السطر التالي: User.query.order_by(User.likes.desc()).limit(10).all() ولكن بهذه الطريقة لا يمكن ترتيب المستخدمين بحسب تاريخ الإنشاء أيضًا. كيف يمكنني أن أستخدم أكثر من عمود في التابع order_by في الإستعلام السابق؟ 1 اقتباس
1 Wael Aljamal نشر 3 يناير 2022 أرسل تقرير نشر 3 يناير 2022 إن الدالة order_by تقبل تمرير أكثر من وسيط بالترتيب الذي نريد عمل ترتيب النتائج عليه، فيكون أول وسيط هو عدد الإعجابات و الثاني هو تاريخ تاريخ الإنشاء ليصبح الاستعلام User.query.order_by( User.likes.desc(), User.date_created.desc() ).limit(10).all() كما يمكن استعمال الدوال _and و _or مثلا: # تضمين from sqlalchemy import and_, or_ #الاستعلام User.query.order_by( and_(User.likes.desc(), User.date_created.desc()) ^^^ ^^^^^ ).all() وحل آخر هو تمرير عبارة الترتريب كنص للاستعلام عن طريق دالة text كالتالي: from sqlalchemy.sql import text User.query.order_by( text("likes desc, date_created desc") ).limit(10).all() 2 اقتباس
السؤال
Mohssen A Mohssen
لدي نموذج User وأريد أن أرتب المستخدمين بناءً على العمود likes و created_at بحيث يتم تنفيذ تعليمة SQL التالية:
حاولت أن أقوم بتنفيذ السطر التالي:
ولكن بهذه الطريقة لا يمكن ترتيب المستخدمين بحسب تاريخ الإنشاء أيضًا.
كيف يمكنني أن أستخدم أكثر من عمود في التابع order_by في الإستعلام السابق؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.