30-01-09, 22:45 | # 1 |
חבר בקהילה
|
[עזרה ] בפקודת like ב sql
היי,
רציתי לדעת האם אפשרי לגרום לפקודה לבדוק אם קיים הנתון שאני רוצה בשורת טקסט. אבל אני רוצה שזה לא יתייחס ל תווים מיוחדים ( כמו : , - ) כלומר אם נגיד אני רוצה שיבדוק אם קיים " חתול שחור " אני רוצה שיגיד לי שזה קיים גם בתוצאה שמורכבת ככה : " יש לי חתול , שחור " האם קיימת אפשרות לבצע פעולה כזאת דרך הsql ? |
30-01-09, 22:50 | # 2 |
חבר מתקדם
|
בקשר ל-SQL - אני לא יודע.
אבל אפשר לעשות את זה עם Preg_match...
__________________
Projector Lamps |
30-01-09, 22:52 | # 3 |
חבר בקהילה
|
הבעיה היא שיש לי מאות אלפי תוצאות בתוך המסד. ועריכה שלהם ושמירה במקום אחר בלי הסימן היא לא אפשרית.
חוץ מזה אני רוצה שגם מצב הפוך יתקיים. כלומר אני רוצה למצוא "חתול , שחור" ושימצא את זה ב : "יש לי חתול שחור " |
30-01-09, 23:01 | # 4 |
חבר וותיק
|
עם איזה דטאבייס אתה עובד?
בכל מ קרה אני מניח שMYSQL - אז בגרסאות החדושת יותר יש אופציה לחפש עם REGEX (אופרטור regexp) ובנוגע למאות תוצאות - בדיוק כתבתי משהו כזה עם זנד לוסין יש מערכת אינדוקס וחיפוש מאוד חכמה (גוגל עושים לה אימפלמנטציה בפייטון בגדול) - השם של זה הוא LUCENE וזה כתוב בJAVA יש קומפוננטה של ZEND FRAMEWORK בשם zend_search_lucene שמדמה אתא ותה הפעולה רק בPHP הקומפוננטה מאפשרת ליצור מסדי ענק ולחפש בהם במהירויות שיא.. אלגוריתם מאוד חכם (לא הייתי מציע לשחק בקוד אלא רק להשתמש בממשק כי אין קומנטים וזה מסובך מאוד..) עוד מידע http://framework.zend.com/manual/en/...ch.lucene.html בהצלחה באימפלמנטציה (:
__________________
Last edited by intercooler3819; 30-01-09 at 23:04.. |
30-01-09, 23:49 | # 5 |
חבר בקהילה
|
לא הבנתי
איך אני משתמש בREGEX בתוף פקודת sql? הצד שרת שלי זה php א |
31-01-09, 09:54 | # 6 |
משתמש - היכל התהילה
|
__________________
קו ישר, כי אפשר גם אחרת |
31-01-09, 11:05 | # 7 |
חבר מתקדם
|
אם יש לך אפשרות תעשה את זה ב PHP, שימוש בביטויים כלשהם בשאילתה עצמה במיוחד ב REGEX יאט את השאילתה בצורה דרסטית. לכן אם זה הכרחי לחלוטין תעשה את זה בשאילתה אבל אם יש לך אפשרות תעשה את זה בצד השרת כשכבר כל התוצאות אצלך.
|
31-01-09, 16:17 | # 8 |
חבר בקהילה
|
אוקי..
אם יש לי מסד עם כ300 אלף רשומות האם זה יאיט מאוד שימוש בregexp ? וממה שהבנתי צריך לעשות קוד:
like '%$משתנה %' REGEXP '.*' |
31-01-09, 16:28 | # 9 | |
משתמש - היכל התהילה
|
ציטוט:
הכל תלוי מה יש ברשומות האלו וכמה חזק השרת.
__________________
קו ישר, כי אפשר גם אחרת |
|
31-01-09, 17:33 | # 10 |
חבר מתקדם
|
לא משנה כמה טוב תכתב השאילתה חיפוש במאגר של 300 אלף רשומות יהיה איטי יותר מלעשות את אותו הדבר בצד השרת.
|
חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים) | |
|
|