![]() |
MySQL | שאלה לגבי סידור פלט
שלום,
יש לי טבלה המכילה את הטורים order וtitle. עכשיו מה שאני רוצה לעשות זה לשלוף קודם את השורות שבהן order לא שווה לאפס ולסדר אותם בסדר עולה ואחרי השורות הנ"ל לשלוף את שאר השורות בסדר עולה לפי title. חשבתי אולי להכניס if לתוך הorder by אבל זה החזיר לי שגיאה... יש דרך מובנית לעשות את זה או שאני אצטרך לכתוב פונקציה בעצמי? :( תודה מראש, כפיר |
WHERE order != 0
|
דבר ראשון FuZuL אני רוצה להודות לך על זה שאתה מנסה לעזור :)
ציטוט:
עם מה שאתה נתת אפשר לפתור את הבעיה בשתי שאילתות כשבאחת אני שולף רק את השורות שבהן order לא שווה לאפס מדפיס אותן מסודרות ואז את השאר. אני כאמור מחפש פתרון בעזרת שאילתה אחת בלבד. יום נעים,כפיר |
http://www.w3schools.com/php/php_mysql_order_by.asp
תקרא את הלמטה, Order by Two Columns אולי זה יעזור לך. |
order by תכונה
|
ציטוט:
ציטוט:
עכשיו order by פשוט לא יעזור כאן שכן הוא יסדר בסדר עולה או יורד תוך כדי התחשבות באפסים! ומאחר שאני לא רוצה שהוא יתחשב באפסים כלומר אני רוצה שהמספרים שאינם שווים לאפס יוצגו בסדר עולה והאפסים יוצגו בסדר עולה לפי הטור השני זה לא עוזר לי... יום טוב, כפיר |
חשבת על UNION?
|
את השורות הראשונות שהORDER שלהם שונה מ0, תהפוך בהם את הערכים של ORDER כך שהכי קטן יבוא אחרון וכך תוכל לסדר את זה בסדר יורד, וכבר לבד כבר השורות עם הorder 0 יבואו אחריהן.
ולשורות שבהן ORDER = 0 ה order by title יכנס לפעולה. |
ציטוט:
1 2 3 4 0 0 0 ... ומה שאתה אמרת יסדר לי את זה ככה 4 3 2 1 0 0 0 ... רעיונות נוספים? |
אני אומר לך לארגן את המערכת ORDER שלך הפוך.
שהראשון יהיה זה עם ה ORDER הכי גבוה והאחרון זה עם ההכי נמוך. וכך באופן טבעי כל השורות עם ה 0 יבואו אחרי אלו עם הORDER. _________________________ זו אופציה אחרת: ואתה יכול אחרי השליפה לעשות מיון בPHP. אחרי שאתה שולף את כל אלו עם ORDER שונה מ 0 ואת השאר, אתה מכניס למערך בPHP ועושה מיון |
כל הזמנים הם GMT +2. הזמן כעת הוא 21:01. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ