اذهب إلى المحتوى
  • 0

كيفية إستخدام order_by أكثر من مرة بإستخدام SQLAlchemy في فلاسك Flask؟

Mohssen A Mohssen

السؤال

لدي نموذج 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 في الإستعلام السابق؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

إن الدالة 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()

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...