עזרה בשאילתת SQL לעבודה עם MS SQL SERVER

danymaor

New member
עזרה בשאילתת SQL לעבודה עם MS SQL SERVER

אני צריך עזרה בכתיבת שאילתת SQL.

יש לי STRING כזה "Microsoft Office Word 2010" ובבסיס הנתונים יש לי עמודה בשם Title ואני רוצה לבצע חיפוש של הסטרינג הזה.

בעמודה יש לי את הנתונים הבאים:

Microsoft Outlook
Microsoft Excel
Microsoft Word

ואני כמובן רוצה לקבל כתשובה את Microsoft Word.

משהו כמו תשלח אלי בחזרה את הכי דומה (זה שיש לו את הכי הרבה מילים זהות) האם ניתן לעשות משהו כזה עם שאילתת SQL ???
 

pitoach

New member
זה פעולה חד פעמית או קבועה?

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

אם אתה רוצה להסתמך על חיפוש כללי של מילים דומות אתה יכול להעזר ב full text search. בשם המקוצר FTS.
FTS מאפשר חיפוש של מילים דומות ולא רק חיפוש מדוייק של מילים. הוא מתבסס על השפה ומהילון עצמו שמוגדר.

אתה צריך קודם להחליט על האפיון המדוייק ולא האפיון של ה "כמו"

תבנה אפיון ותחליט בדיוק מה התנאים לפיהם אתה רוצה להוציא את הנתון

אם אתה מחפש מילים מדוייקות בלבד ורק רוצה להחזר את זה שיש לו הכי הרבה מילים אז אתה יכול לבצע פשוט SPLIT על השרשרת שאתה מחפש לטבלה זמנית. בשלב הבא ישאר לך לכתוב שאילתה פשוטה מאוד בדומה למה שגרי הציע בקישור הבא
http://www.tapuz.co.il/forums2008/viewmsg.aspx?forumid=193&messageid=162983045
 

danymaor

New member
אחרי שחשבתי על זה טוב יותר....

אחרי שחשבתי על זה טוב יותר אני חושב שאני צריך משהו כמו LIKE אבל בחיפוש הפוך עם פיצול של מילים. כלומר אם בבסיס הנתונים יש משפט כמו "מיקרוסוט וורד" ואני שולח אליו "מיקרוסופט וורד 2010" אז הוא לוקח את מה ששלחתי עליו ובודק בבסיס הנתונים אם המילים שיש שם מתאימות למה ששלחתי (לא לפי הסדר העיקר שיהיו המילים הנכונות) כלומר הוא יבדוק אם יש אצלי את מיקרוסופט ןאם יש אז הוא יבדוק אם יש וורד ואם כן אז הוא יחזיר לי את "מיקרוסופט וורד"

רואים שאני פחות מבין בזה ואני מקווה שמה שאני אומר זה הגיוני.
 

danymaor

New member
חשוב לציין

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

ומה שנשלח לחיפוש בבסיס הנתונים לא מתיד מדוייק ויכול להיות גם

"מיקרוסופט אופיס וורד דיסק DVD משנת 2010"
 

pitoach

New member
זה לא משנה ממה שכתבתי קודם

שלב 1. תבצע SPLIT של השרשרת שלך למילים
שלב 2. תבדוק את הקישור ששמתי וכיצד גרי הציע לבדוק כמה מילים מתאימות

זה במקרה שמדובר בחיפוש מדוייק של המילים

אם מדובר בחיפוש של מילים דומות אז FTS
 
למעלה