zend Framework SQL SELECT QUERY Construction (ترتيب)
-
19-09-2019 - |
سؤال
لدي قاعدة بيانات مع عمود varchar url
. وبعد أود جلب الصفوف بحيث تلك التي لديها أي url
القيمة لها الأولوية على صفوف أخرى، ولكن يتم طلبها من قبل date
الصف (تنازلي)، لذلك ORDER BY 'url' DESC, 'date' DESC
لن تعمل لأنها ستطلبها أبجديا أولا. في الأساس، سيبدو شيئا مثل هذا:
الطاولة:
ID | Url | Date
1 | http://...| 1001
2 | | 1002
3 | | 1003
4 | http://...| 1005
5 | http://...| 1004
مرتبة:
ID | Url | Date
4 | http://...| 1005
5 | http://...| 1004
1 | http://...| 1001
3 | | 1003
2 | | 1002
ماذا ستكون الطريقة المناسبة Zend Framework (أو على الأقل استعلام SQL) للقيام بذلك؟
المحلول
مع SQL، يمكنك ذلك شيء مثل ...
يحصل نوعا من القبيح إذا سمحت بقيم فارغة في حقل URL أيضا.
SELECT * , IF(LENGTH(url) = 0 OR url IS NULL, 1, 0) AS nourl
FROM url ORDER BY nourl ASC
هذا يتحقق أساسا لمعرفة ما إذا كان طول عنوان URL أكبر من الصفر أو لاغيا. إذا كانوا كذلك، فهي في الجزء السفلي من هذا النوع.
نصائح أخرى
يمكنك استخدام order by field('field_name', value) desc
في عبارة SELECT.
لا تنتمي إلى StackOverflow