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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [SQL] שליפת 5 שדות אחרונים מ 5 קטגוריות שונות (https://hosts.co.il/forums/showthread.php?t=82178)

O-B 19-04-10 02:42

[SQL] שליפת 5 שדות אחרונים מ 5 קטגוריות שונות
 
אני מנסה לחשוב על דרך יעילה יותר בשאילתא מסויימת, והיא שליפה של 5 שדות אחרונים מ 5 קטגוריות שונות.
הדרך היחידה שאני מכיר היא שליפה בנפרד של 5 קטגוריות ואז לכל קטגוריה לשלוף 5 שורות אחרונות של הקטגוריה כך שבעצם אני מבצע 6 שאילתות (1 שליפת 5 קטגוריות + 5 שליפת 5 שורות).

רציתי לקבל עזרה (אם אפשר בכלל) לעשות את זה בדרך יעילה יותר.

בתודה, עובד.

MasterNetwork 19-04-10 03:22

תעשה פונקציה שאתה כותב את הקטגוריה ואת הלימיט וזה מחזיר תוצאות ותשתמש בפונקציה

Shay Ben Moshe 19-04-10 11:35

את השליפות של הקטגוריות אני מאמין שתצטרך לעשות כרגיל אבל את השליפות של 5 שורות לכל קטגוריה תוכל לעשות בשאילתה אחת.
PHP קוד:

SELECT FROM `dataWHERE `cat_idIN ('id1''id2''id3''id4''id5'


O-B 19-04-10 17:56

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 761536)
תעשה פונקציה שאתה כותב את הקטגוריה ואת הלימיט וזה מחזיר תוצאות ותשתמש בפונקציה

אבל עדיין אני צריך להפעיל את הפונקציה 5 פעמים וזה עדיין 6 שאילתות..
ואני לא שולף בדיוק 5 זה יותר להמחשה אני צריך 7 כך שאני עושה 8 שאילותות..
אני רוצה בפחות..

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 761556)
את השליפות של הקטגוריות אני מאמין שתצטרך לעשות כרגיל אבל את השליפות של 5 שורות לכל קטגוריה תוכל לעשות בשאילתה אחת.
PHP קוד:

SELECT FROM `dataWHERE `cat_idIN ('id1''id2''id3''id4''id5'


וואי נכון.. לא חשבתי על זה..
עכשיו במקום 8 שאילתות אני עושה 2..

תודה!

O-B 20-04-10 23:52

ציטוט:

נכתב במקור על ידי O-B (פרסם 761605)
אבל עדיין אני צריך להפעיל את הפונקציה 5 פעמים וזה עדיין 6 שאילתות..
ואני לא שולף בדיוק 5 זה יותר להמחשה אני צריך 7 כך שאני עושה 8 שאילותות..
אני רוצה בפחות..



וואי נכון.. לא חשבתי על זה..
עכשיו במקום 8 שאילתות אני עושה 2..

תודה!

ניסיתי לבצע את זה ויש לי בעיה קטנה איך אני מגביל ל 5 תוצאות מכל ID?

MasterNetwork 21-04-10 03:30

מכל קטגוריה אתה מתכוון?
אם אתה רוצה את הכי חדשים תעשה order by desc אם ישנים אז במקום desc תרשום esc
ובשביל ההגבלה תעשה limit

O-B 21-04-10 06:49

ציטוט:

נכתב במקור על ידי MasterNetwork (פרסם 761684)
מכל קטגוריה אתה מתכוון?
אם אתה רוצה את הכי חדשים תעשה order by desc אם ישנים אז במקום desc תרשום esc
ובשביל ההגבלה תעשה limit

אני יודע לכתוב שאילתות.. הבעיה היא שם אני כותב כמו שאתה זה לא נכון.
לדוגמה אם יש לי 5 קטגוריות ואני צריך 5 רשומות מכל אחת הלימיט שלי הוא 25 ואני מסדר אותם בסדר עולה.
התוצאה יכולה להיות 7 מקטגוריה אחת, 3 מקטגוריה 2, 10 מקטגוריה 3, 1 מקטגוריה 4 ו4 מקטגוריה 5. וזה לא מה שאני רוצה אני צריך בדיוק 5 מכל אחת.

Shay Ben Moshe 23-04-10 10:36

אני מניח שזה אפשרי עם sub queries אבל זה יהיה מגעיל ולא מובן :)

O-B 23-04-10 16:22

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 761849)
אני מניח שזה אפשרי עם sub queries אבל זה יהיה מגעיל ולא מובן :)

אז הדרך היחידה היא 2 לולאות?


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

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