15-10-2009, 15:59
|
|
|
חבר מתאריך: 15.10.09
הודעות: 10
|
|
הכוונה לצמצום שאילתא ושיטת FULLTEXT
שלום,
בפרוייקט שבו אני עוסק כעת נתקלתי בצורך לבצע חיפוש.
ראשית, השאלה שלי היא לגבי חיפוש בשיטת FULLTEXT. לא הצלחתי למצוא מקור מידע שמסביר בצורה ברורה את היתרונות והחסרונות של השיטה אל מול חיפוש עם LIKE. אשמח אם מישהו שמכיר את השיטה יסביר זאת או יכוון אותי למקור מידע מתאים.
שנית, בחיפוש בפרוייקט הזה יש צורך לחפש בכמה טבלאות בו זמנית, כל טבלה מכילה שדות שונים שצריך להציג. אני מעוניין להציג את כל התוצאות ברשימה אחת מסודרת עפ"י בחירת המשתמש. לצערי אני לא מצליח לחשוב על דרך שבה אוכל לעשות זאת ב-SQL.
כדי שתבינו יותר טוב על מה אני מדבר, הנה דוגמא קצרה שהכנתי ב-PHP לרעיון הבסיסי בצורה בזבזנית.
במקרה הזה המשתמש ביקש לחפש רק ב-2 טבלאות ולסדר את הפריטים עפ"י תאריך:
קוד PHP:
<?php $data = $orderlist = $result = array(); $q = mysql_query("SELECT field1, field2, timestamp FROM tbl1 WHERE condition"); while($r = mysql_fetch_assoc($q)){ $r['search_result_type'] = 'tbl1'; $data[] = $r; $orderlist[] = $r['timestamp']; } $q = mysql_query("SELECT otherfield, otherfield, timestamp FROM tbl2 WHERE condition"); while($r = mysql_fetch_assoc($q)){ $r['search_result_type'] = 'tbl2'; $data[] = $r; $orderlist[] = $r['timestamp']; } asort($orderlist); foreach(array_keys($orderlist) as $k) $result[] = $r[$k];
כמו שניתן לראות יש פה שימוש ב-2 שאילתות וב-2 לולאות לאיסוף המידע.
במידה והמשתמש ירצה לחפש בכל טבלאות הפרוייקט, ישנה אפשרות שהעמוד יגיע למעל 15 שאילתות ו-15 לולאות רק בחיפוש! השיטה הזו נראית לי מאוד בזבזנית.
אשמח לקבל הכוונה ועיצות מיודעים בדבר.
תודה רבה!
|