שלח תשובה

זירת השאלות

643
צפיות
19
תשובות

שאלה ב- SQL

,‏ 10 בינואר, 2004

שלום לכולם!
איך אני בוחר רשומה אקראית מתוך בסיס נתונים?
תודה, אלברט
(שאלתי את השאלה הזאת ממש לפני שהחלפתם את מערכת הפורומים באתר לכן לא קיבלתי עליה תשובה…)

תגיות:

19 תשובות

  1. albert הגיב:

    לא עובד :-/
    אני מקבל את השגיא הזאת:

    Error Type:
    ADODB.Recordset (0x800A0E7D)
    Operation is not allowed on an object referencing a closed or invalid connection.

    ובשורה 20:

    rs.Open "SELECT * FROM tbl ORDER BY RAND() LIMIT 1"
    (כמו שהיה בפורום תפוז)

    תודה, אלברט

  2. albert הגיב:

    תיקון קטן
    כמו תמיד שכחתי לשים את ב- ,conn (אובייקט חיבור בסוף ה- SELECT)
    עכשיו אני מקבל שגיאה כזאת:

    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'RAND() LIMIT 1'.
    line 20

    ובשורה 20:

    rs.Open "SELECT * FROM smart ORDER BY RAND() LIMIT 1", conn

    (איך בוחרים רשומה אקראית…?)
    תודה, אלברט

  3. הפקודה שכתבת היא ל-mySQL
    אתה צריך את האפשרות הראשונה בקישור שנועם נתן לך.

  4. albert הגיב:

    איזו?
    אני לא רואה אופציה נוספת, את יכולה לכתוב לי את הפקודה כאן?

    תודה, אלברט

  5. albert הגיב:

    אני לא רואה כלום חוץ מפרסומת….
    אתם יכולים לכתוב את הקוד כאן? או להביא לי קישור ממש ישיר?

    תודה, אלברט

  6. זהר פלד הגיב:

    כן, תפוז שינו משהו באתר,
    ואני לא ידעתי…
    לך ללינק שיש לך בשרשור יותר למעלה, ל FAQ של פורום ASP בתפוז, וכנס שם לשרשור בסעיף מספר 1.

  7. albert הגיב:

    לא ברור לי…
    שם השאלה היא לבחור 5 רשומות אקראיות לכן הקוד ממש מסובך…
    אבל אני רוצה קר רשומה אחת… איך זה הולך אצלי?

    תודה, אלברט

  8. זהר פלד הגיב:

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

  9. rnd … אבל…
    אין אפשרות לעשות randomize, אז תמיד מקבלים את אותם מספרים

  10. משהו כזה


    <%
    randomize
    dim num, count
    set rs = Server.CreateObject("adodb.recordset")
    rs.open "select * from tbl", conn
    count = rs.RecordCount
    num = round(rnd*count)
    rs.move(num)
    Response.Write(rs("fld"))
    %>

  11. albert הגיב:

    למה אי אפשר randomize?
    ולמה אי אפשר לבחור את הרשומה ישר ב- SELECT?
    ומה הכוונה תמיד מקבלים את אותם המספרים?

    תודה, אלברט

  12. זהר פלד הגיב:

    נו, אקסס, אי אפשר לצפות ליותר מדי..

שלח תשובה