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

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

M.a.T.a.N 07-06-10 02:18

שאלה|בקשר לSQL, שיעשה SELECT באופן אקראי
 
שלום,
מוזר שאף פעם לא הגעתי למצב הזה, אבל איך אני יכול לעשות SELECT מתוך SQL שיוצג לי באופן אקראי?
כלומר, נכון שיש DESC, ויש ASC שזה מסדר מהסוף להתחלה והשני הפוך...אבל איך אני עושה שפשוט יציג לי את הפלט של הSELECT באופן אקראי מתוך הטבלאה שאני מבקש?

לילה טוב :)

אדיר 07-06-10 06:19

קרא על rand()

Dekken 07-06-10 09:22

PHP קוד:

SELECT FROM `lalalalalORDER BY Rand() 


M.a.T.a.N 07-06-10 12:59

תודה רבה :)

Shay Ben Moshe 07-06-10 17:43

מאוד מאוד לא מומלץ להשתמש ORDER BY RAND(), תקראו באינטרנט למה (google it)..

Dekken 07-06-10 18:02

יש אלטרנטיבה..פונקציה שמישהו הכין.
http://www.greggdev.com/web/articles.php?id=6
זה במקרה אבל שיש לך עשרות אלפי רקורדים במסד.

HOLD 08-06-10 23:39

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 766725)
מאוד מאוד לא מומלץ להשתמש ORDER BY RAND(), תקראו באינטרנט למה (google it)..

אוקי, קראתי למה הוא לא כדאי,
אבל לא מצאתי פתרון, כל אתר מציע משהו אחר, ומאיפה לי לדעת מה יותר טוב לי?

השאילתא שלי שולפת מידע מ-2 טבלאות, בעזרת UNION, שתי הטבלאות ביחד אמורות (בעתיד) להכיל בין 900 - 2500 ערכים.

אם אני רוצה לשלוף 3 שורות באופן רנדומלי, בהנחה שיש לי המון קפיצות ב-Id (כי לפעמים אני מוחק ערכים) וכמה Id כפולים (כי אני שולף משתי טבלאות), מה הדבר הכי טוב לעשות?

תודה.

AlmogBaku 10-06-10 08:42

אני מניח שאין לך מאות אלפי שורות בשאילתה.. אז תשתמש בRAND

Shay Ben Moshe 10-06-10 08:57

האממ, אם אתה צריך שורה אחת זה פתרון יפה יחסית: http://www.greggdev.com/web/articles.php?id=6

בגדול 3 שורות זה לא כזה נורא, אתה יכול להשתמש בrand.

HOLD 10-06-10 12:08

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 766924)
האממ, אם אתה צריך שורה אחת זה פתרון יפה יחסית: http://www.greggdev.com/web/articles.php?id=6

בגדול 3 שורות זה לא כזה נורא, אתה יכול להשתמש בrand.

לקחת את הדוגמא הראשונה?

PHP קוד:

$random_row mysql_fetch_row(mysql_query("select * from YOUR_TABLE order by rand() limit 1")); 

או את הפונקציה שהוא נותן?

לא הבנתי משהו , קראתי ברשת שאם אתה משתמש ב-by rand זה מוציא כמות מספרים רנדומלים ששווה למספר השורות. (עכשיו השאלה לאילו שורות? סך כל השורות עם הפוטנציאל להשלף? או רק את מספר השורות שבאמת נשלפות? (שlimit 1 מצמצם אותן לאחת בלבד))

תודה.


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

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