ABA


"עזרה ב PHP/MYSQL"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #15864 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15864
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   04:34   02.10.10   
אל הפורום  
  עזרה ב PHP/MYSQL  
 
   שלום,
אני רוצה ששאילתה תתעלם משורות בהן הערך לעמודה מסויימת זהה.
זאת אומרת שאם שאילתה מחזירה נניח חמש שורות:
a b
1 3
2 4
3 6
4 5
5 5

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

תודה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  אתה רוצה לבחור רק ערכים יוחדיים CaTz 02.10.10 11:07 1
     לא ממש נכון. הוא לא רוצה שהן יופיעו בכלל Ice Cold  02.10.10 14:29 4
  אתה צריך לעשות GROUP BY לטור השמאלי ליל קיץ 02.10.10 12:42 2
  מה הבעיה עם השאילתא הבאה? akoka2 02.10.10 13:38 3
  תודה רבה לכולם, יכול להיות שלא הסברתי את עצמי כמו שצריך נחמיה  02.10.10 14:50 5
     אתה חייב לעבוד על הניסוח שלך בכתב ליל קיץ 02.10.10 16:06 6
         זה חדש לי... נחמיה  06.10.10 01:34 7
             בדוגמא שנתת ביקשת בפירוש את ה-4 הראשונות. Ice Cold  06.10.10 10:43 9
                 צודק חח, הדוגמא לא הייתה הכי טובה כשאני חושב על זה נחמיה  06.10.10 14:20 10
     נכון כי distinct מחזיר ערך אחד בלי חזרות... :) בהצלחה sharkk 06.10.10 09:24 8

       
CaTz
חבר מתאריך 2.10.04
14537 הודעות
   11:07   02.10.10   
אל הפורום  
  1. אתה רוצה לבחור רק ערכים יוחדיים  
בתגובה להודעה מספר 0
 
   אתה יכול לשתמש בdistinct


SELECT DISTINCT column_name FROM table_name


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   14:29   02.10.10   
אל הפורום  
  4. לא ממש נכון. הוא לא רוצה שהן יופיעו בכלל  
בתגובה להודעה מספר 1
 
הוא לא רולה לקבל את הערך הייחודי שלהן.
הפתרון של ליל קיץ הוא פתרון יותר נכון, אבל ה-Having צריך להיות =1 ולא קטן מ-1. קטן מ-1 בחיים לא יהיה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ליל קיץ לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.2.10
10048 הודעות, 7 פידבק
   12:42   02.10.10   
אל הפורום  
  2. אתה צריך לעשות GROUP BY לטור השמאלי  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 02.10.10 בשעה 12:46 בברכה, ליל קיץ
 
מה שיקרה זה שנתונים כאלה :

3 6
4 5
5 5


יחזרו בצורה כזאת :

3 6
4 5


לכן 5 השורות הראשונות יחזרו, השישית לא.
אם אתה רוצה להעלים כפילויות לחלוטין דרך השאילתא,

SELECT a,b
FROM tbl
GROUP BY a
HAVING COUNT(*)<1;

ככה תגיע למצב שכאשר יש COUNT של יותר מערך אחד זהה בטור השמאלי,
הוא לא יוצג.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka2

   13:38   02.10.10   
אל הפורום  
  3. מה הבעיה עם השאילתא הבאה?  
בתגובה להודעה מספר 0
 
  

SELECT COUNT(*) AS totalResults
FROM `tableA` WHERE `a` != `b`

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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   14:50   02.10.10   
אל הפורום  
  5. תודה רבה לכולם, יכול להיות שלא הסברתי את עצמי כמו שצריך  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 02.10.10 בשעה 15:32 בברכה, נחמיה
 
התכוונתי שאני לא רוצה ש COUNT יספרו שורות שהערך שלהן ב b זהה.
אם יש כמה שורות שהערך שלהן ב b שווה ל 5, אני רוצה שרק אחת תיחשב.
תודה

אגב, אולי אם אני אתן את השאילתה האמיתית זה יהיה יותר מובן.
SELECT COUNT(*) FROM post INNER JOIN thread ON post.threadid = thread.threadid WHERE thread.forumid = 28 AND userid = 105001 AND post.dateline > 1283432018

אני רוצה לבדוק בעצם את מספר התגובות שנכתבו בפורום מספר 28 ע"י היוזר 105001 בחודש האחרון.
ה INNER JOIN הוא בגלל שאין עמודת forumid בטבלת post.
עכשיו, אני בעצם לא רוצה תגובות כפולות לאותו נושא, אני רוצה לקבל מקסימום תגובה אחת לכל נושא, ככה שאם ישנן 2 תגובות באותו נושא, רק אחת תיחשב.


טוב, בדקתי את הפתרונות, והפתרון CaTz, עם DISTINCT עובד. שוב תודה רבה לכולם על העזרה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ליל קיץ לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 14.2.10
10048 הודעות, 7 פידבק
   16:06   02.10.10   
אל הפורום  
  6. אתה חייב לעבוד על הניסוח שלך בכתב  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   01:34   06.10.10   
אל הפורום  
  7. זה חדש לי...  
בתגובה להודעה מספר 6
 
   סתם מתוך סקרנות, מה לא היה ברור?
יכול להיות שהייתי קצת מסורבל כי קצת קשה לי להסביר את כל הסיפור..


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Ice Cold  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 3.8.02
28041 הודעות, 19 פידבק
   10:43   06.10.10   
אל הפורום  
  9. בדוגמא שנתת ביקשת בפירוש את ה-4 הראשונות.  
בתגובה להודעה מספר 7
 
משמע, 2 החמישיות - לא יופיעו.

אחרי זה אמרת שאתה כן שרוצה שתופיע רק אחת.

נשמע לך ברור?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
נחמיה  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 24.5.05
5984 הודעות, 3 פידבק
   14:20   06.10.10   
אל הפורום  
  10. צודק חח, הדוגמא לא הייתה הכי טובה כשאני חושב על זה  
בתגובה להודעה מספר 9
 
   כי אפשר לפרש אותה לכמה כיוונים.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
sharkk
חבר מתאריך 2.9.02
1306 הודעות
   09:24   06.10.10   
אל הפורום  
  8. נכון כי distinct מחזיר ערך אחד בלי חזרות... :) בהצלחה  
בתגובה להודעה מספר 5
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net