הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   MySQL | שאלה לגבי סידור פלט (https://hosts.co.il/forums/showthread.php?t=61068)

Kfir.G 18-03-08 17:53

MySQL | שאלה לגבי סידור פלט
 
שלום,
יש לי טבלה המכילה את הטורים order וtitle. עכשיו מה שאני רוצה לעשות זה לשלוף קודם את השורות שבהן order לא שווה לאפס ולסדר אותם בסדר עולה ואחרי השורות הנ"ל לשלוף את שאר השורות בסדר עולה לפי title.
חשבתי אולי להכניס if לתוך הorder by אבל זה החזיר לי שגיאה...
יש דרך מובנית לעשות את זה או שאני אצטרך לכתוב פונקציה בעצמי? :(

תודה מראש,
כפיר

FuZuL 18-03-08 20:01

WHERE order != 0

Kfir.G 18-03-08 20:16

דבר ראשון FuZuL אני רוצה להודות לך על זה שאתה מנסה לעזור :)

ציטוט:

נכתב במקור על ידי FuZuL (פרסם 617116)
WHERE order != 0

ומה בדיוק אני משיג בזה? במקרה שלא הבנת אני רוצה לשלוף את כל השורות ואני רוצה לשלוף את השורות שבהן order לא שווה אפס ראשונות ולסדר אותן בסדר עולה ולאחר מכן את השורות שבהן order כן שווה לאפס מסודרות בסדר עולה.

עם מה שאתה נתת אפשר לפתור את הבעיה בשתי שאילתות כשבאחת אני שולף רק את השורות שבהן order לא שווה לאפס מדפיס אותן מסודרות ואז את השאר. אני כאמור מחפש פתרון בעזרת שאילתה אחת בלבד.

יום נעים,כפיר

בניה 18-03-08 20:41

http://www.w3schools.com/php/php_mysql_order_by.asp
תקרא את הלמטה, Order by Two Columns
אולי זה יעזור לך.

דור 18-03-08 21:25

order by תכונה

Kfir.G 18-03-08 21:38

ציטוט:

נכתב במקור על ידי Kfir.G | WebPower.co.il (פרסם 617082)
שלום,
יש לי טבלה המכילה את הטורים order וtitle. עכשיו מה שאני רוצה לעשות זה לשלוף קודם את השורות שבהן order לא שווה לאפס ולסדר אותם בסדר עולה ואחרי השורות הנ"ל לשלוף את שאר השורות בסדר עולה לפי title.
חשבתי אולי להכניס if לתוך הorder by אבל זה החזיר לי שגיאה...
יש דרך מובנית לעשות את זה או שאני אצטרך לכתוב פונקציה בעצמי? :(

תודה מראש,
כפיר

ציטוט:

נכתב במקור על ידי בניה (פרסם 617130)
http://www.w3schools.com/php/php_mysql_order_by.asp
תקרא את הלמטה, Order by Two Columns
אולי זה יעזור לך.

דבר ראשון תודה על זה שאתה מנסה לעזור :)
עכשיו order by פשוט לא יעזור כאן שכן הוא יסדר בסדר עולה או יורד תוך כדי התחשבות באפסים! ומאחר שאני לא רוצה שהוא יתחשב באפסים כלומר אני רוצה שהמספרים שאינם שווים לאפס יוצגו בסדר עולה והאפסים יוצגו בסדר עולה לפי הטור השני זה לא עוזר לי...

יום טוב,
כפיר

Dum 18-03-08 21:58

חשבת על UNION?

בניה 18-03-08 22:12

את השורות הראשונות שהORDER שלהם שונה מ0, תהפוך בהם את הערכים של ORDER כך שהכי קטן יבוא אחרון וכך תוכל לסדר את זה בסדר יורד, וכבר לבד כבר השורות עם הorder 0 יבואו אחריהן.

ולשורות שבהן ORDER = 0 ה order by title יכנס לפעולה.

Kfir.G 18-03-08 22:17

ציטוט:

נכתב במקור על ידי בניה (פרסם 617160)
את השורות הראשונות שהORDER שלהם שונה מ0, תהפוך בהם את הערכים של ORDER כך שהכי קטן יבוא אחרון וכך תוכל לסדר את זה בסדר יורד, וכבר לבד כבר השורות עם הorder 0 יבואו אחריהן.

ולשורות שבהן ORDER = 0 ה order by title יכנס לפעולה.

זה לא יעזור לי כי אני רוצה לסדר את זה ככה
1
2
3
4
0
0
0
...

ומה שאתה אמרת יסדר לי את זה ככה
4
3
2
1
0
0
0
...

רעיונות נוספים?

בניה 18-03-08 22:22

אני אומר לך לארגן את המערכת ORDER שלך הפוך.
שהראשון יהיה זה עם ה ORDER הכי גבוה והאחרון זה עם ההכי נמוך.
וכך באופן טבעי כל השורות עם ה 0 יבואו אחרי אלו עם הORDER.


_________________________
זו אופציה אחרת:
ואתה יכול אחרי השליפה לעשות מיון בPHP.

אחרי שאתה שולף את כל אלו עם ORDER שונה מ 0 ואת השאר, אתה מכניס למערך בPHP ועושה מיון


כל הזמנים הם GMT +2. הזמן כעת הוא 21:01.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ