11-08-2005, 21:24
|
|
|
|
חבר מתאריך: 30.10.01
הודעות: 8,699
|
|
|
בסדר...
קודם כל, בדקתי בדוקומנטציה של MySQL והתחביר של ה- SELECT שנתתי תואם
http://dev.mysql.com/doc/mysql/en/select.html
הנה ההסבר:
The ALL, DISTINCT, and DISTINCTROW options specify whether duplicate rows should be returned. If none of these options are given, the default is ALL (all matching rows are returned). DISTINCT and DISTINCTROW are synonyms and specify that duplicate rows in the result set should be removed.
בפורום התמיכה שלהם הציעו למישהו להשתמש ב GROUP BY במקום DISTINCT
קוד:
SELECT date FROM log GROUP BY date
אבל לאור האופטימיזציה ש MySQL מבצע על DISTINCT יש לי תחושה שזו לא חלופה מומלצת.
(ראה הסבר כאן )
אגב, אם הערכים של שם המשתמש אצלך הם ייחודיים אין לך צורך ב DISTINCT משום שבכל מקרה תקבל מקסימום ערך אחד.
לכן השאילתא שלך צריכה להיות משהו כזה:
קוד:
SELECT un FROM users_table WHERE un='username'
ואז פשוט תבדוק כמה ערכים קיבלת (0 = אין שם כזה, 1=יש שם כזה, יותר מאחד... משהו לא בסדר במסד התונים שלך)
כמובן שאתה יכול להשתמש ב (SELECT count(un אבל בשביל ערך אחד, למה לגרום למסד הנתונים לעבוד קשה
_____________________________________
_________________________________________________
אזהרה: משרד הבריאות קובע כי העישון מזיק לבריאות !
תראו, אפילו החייזר נהיה ירוק מזה
נערך לאחרונה ע"י המממ בתאריך 11-08-2005 בשעה 21:29.
|