![]() |
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 ועושה מיון |
ציטוט:
ציטוט:
מיון בPHP זה אפשרי אבל זה להתחמק בעיה ולא לפתור אותה =\ אין דרך לעשות זאת בתוך השאילתה עצמה? |
אני חושב שאפשר לשנות את הסדר ללא פגיעה בנוחות למשתמש,ואפילו שכל ההיפוך יתבצע בPHP והמשתמש יראה אותו דבר.
ועוד אופציה זה להכניס לתא ORDER לכל מה שאין לו ORDER שאתה הכנסת את הערך הכי גדול שהשדה יכול לקבל, או כל מספר אסטרונומי. כך שאתה תוכל לזהות בקוד שלך שזה לא רלוונטי בתור ORDER שלך, אבל זה עדיין הORDER BY של הMYSQL ישים אותם אחרי ה 1 2 3 4 שלך _____________________ ובנוגע להתחמקות בעיה, יש הרבה מצבים שמיון בPHP יהיה יותר יעיל וטוב לשרת מאשר בשרת SQL |
ציטוט:
עכשיו בקשר לשורה שהדגשתי בציטוט שלך איך אני בדיוק יכול להשוות? |
לא עולה לי דוגמא טובה לראש, אבל לפעמים במקום שליפה וORDER BY בMYSQL, עדיף לשלוף נתונים מבולגאנים ולסדר אותם כשהם בזיכרון בשרת ולא נועלים חלקים במסד נתונים.
|
כל הזמנים הם GMT +2. הזמן כעת הוא 06:07. |
מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ