הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   [עזרה ] בפקודת like ב sql (https://hosts.co.il/forums/showthread.php?t=71605)

yakar 30-01-09 22:45

[עזרה ] בפקודת like ב sql
 
היי,

רציתי לדעת האם אפשרי לגרום לפקודה לבדוק אם קיים הנתון שאני רוצה בשורת טקסט.
אבל אני רוצה שזה לא יתייחס ל תווים מיוחדים ( כמו : , - )

כלומר אם נגיד אני רוצה שיבדוק אם קיים " חתול שחור "
אני רוצה שיגיד לי שזה קיים גם בתוצאה שמורכבת ככה : " יש לי חתול , שחור "

האם קיימת אפשרות לבצע פעולה כזאת דרך הsql ?

Shon12 30-01-09 22:50

בקשר ל-SQL - אני לא יודע.
אבל אפשר לעשות את זה עם Preg_match...

yakar 30-01-09 22:52

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

כלומר אני רוצה למצוא "חתול , שחור"
ושימצא את זה ב : "יש לי חתול שחור "

intercooler3819 30-01-09 23:01

עם איזה דטאבייס אתה עובד?
בכל מ קרה אני מניח שMYSQL - אז בגרסאות החדושת יותר יש אופציה לחפש עם REGEX
(אופרטור regexp)

ובנוגע למאות תוצאות - בדיוק כתבתי משהו כזה עם זנד לוסין

יש מערכת אינדוקס וחיפוש מאוד חכמה (גוגל עושים לה אימפלמנטציה בפייטון בגדול) - השם של זה הוא LUCENE וזה כתוב בJAVA

יש קומפוננטה של ZEND FRAMEWORK בשם zend_search_lucene שמדמה אתא ותה הפעולה רק בPHP

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

עוד מידע

http://framework.zend.com/manual/en/...ch.lucene.html

בהצלחה באימפלמנטציה (:

yakar 30-01-09 23:49

לא הבנתי
איך אני משתמש בREGEX בתוף פקודת sql?
הצד שרת שלי זה php א

בניה 31-01-09 09:54

http://dev.mysql.com/doc/refman/4.1/en/regexp.html

vadimg88 31-01-09 11:05

אם יש לך אפשרות תעשה את זה ב PHP, שימוש בביטויים כלשהם בשאילתה עצמה במיוחד ב REGEX יאט את השאילתה בצורה דרסטית. לכן אם זה הכרחי לחלוטין תעשה את זה בשאילתה אבל אם יש לך אפשרות תעשה את זה בצד השרת כשכבר כל התוצאות אצלך.

yakar 31-01-09 16:17

אוקי..
אם יש לי מסד עם כ300 אלף רשומות
האם זה יאיט מאוד שימוש בregexp ?

וממה שהבנתי צריך לעשות
קוד:

like '%$משתנה %' REGEXP '.*'
זה נכון?

בניה 31-01-09 16:28

ציטוט:

נכתב במקור על ידי yakar (פרסם 695863)
אוקי..
אם יש לי מסד עם כ300 אלף רשומות
האם זה יאיט מאוד שימוש בregexp ?

וממה שהבנתי צריך לעשות
קוד:

like '%$משתנה %' REGEXP '.*'
זה נכון?

כל חיפוש זו פעולה יקרה מבחינת משאבים יחסית.
הכל תלוי מה יש ברשומות האלו וכמה חזק השרת.

vadimg88 31-01-09 17:33

לא משנה כמה טוב תכתב השאילתה חיפוש במאגר של 300 אלף רשומות יהיה איטי יותר מלעשות את אותו הדבר בצד השרת.


כל הזמנים הם GMT +2. הזמן כעת הוא 15:36.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ