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

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   איך אפשר לעשות חיפוש ב MYSQL שלא casesensetiv? (https://hosts.co.il/forums/showthread.php?t=25590)

בניה 03-07-06 21:35

איך אפשר לעשות חיפוש ב MYSQL שלא casesensetiv?
 
ב"ה


והאם יש ביטויים רגולרים או משהוא דומה לזה.

Tomer 03-07-06 21:45

כעיקרון, חיפוש עם WHERE term='$term' לא החזיר לי אף-פעם case sensetive
אבל תנסה WHERE term LIKE '$term'

Itay 03-07-06 21:47

http://www.google.com/search?q=SQL+case+insensitive
יש שם בתוצאה הראשונה שאילתה כזאת
קוד:

select distinct lower(city) from mytable
אז תנסה לעשות משהו כזה, תמיד את מה שאתה צריך לאותיות קטנות ואז בשאילתה תשתמש ב-lower

drowkid 04-07-06 11:52

מזה casesensetiv?|:

eLad 04-07-06 11:54

ציטוט:

נכתב במקור על ידי drowkid
מזה casesensetiv?|:

הבחנה בין אותיות גדולות לקטנות.

במערכות שבהם מופעל CS (case sensitive) יש הבדל בין המחרוזת eLad לבין המחרוזת elad

x-ray 04-07-06 12:01

אם מדובר בביטוי שכולו הודעות גדולות או קטנות אתה יכול להשתמש בפונקציות strtolower או strtoupper ,במידה ואתה לא יודע אם זה גדול או קטן אתה יכול להריץ 2 שאילתות עם כל אחת מהפונקציות..

eLad 04-07-06 12:06

ציטוט:

נכתב במקור על ידי x-ray
אם מדובר בביטוי שכולו הודעות גדולות או קטנות אתה יכול להשתמש בפונקציות strtolower או strtoupper ,במידה ואתה לא יודע אם זה גדול או קטן אתה יכול להריץ 2 שאילתות עם כל אחת מהפונקציות..

אין טעם להריץ שתי שאילתות, בזבוז מוחלט של משאבים.

השיטה הנכונה לעבוד עם CS היא להמיר את הכל (ברמת SQL כמו שמישהו הציע פה למעלה) ולחפש ככה. מוזר ש mySQL הוא CS, אולי אפשר לטפל בעניין הזה ברמת השרת..

בניה 04-07-06 12:07

ציטוט:

נכתב במקור על ידי eLad
אין טעם להריץ שתי שאילתות, בזבוז מוחלט של משאבים.

השיטה הנכונה לעבוד עם CS היא להמיר את הכל (ברמת SQL כמו שמישהו הציע פה למעלה) ולחפש ככה. מוזר ש mySQL הוא CS, אולי אפשר לטפל בעניין הזה ברמת השרת..

ב"ה


מה עם הביטויים רגולרים?
יש דבר דומה לזה בMYSQL?

BlueNosE 04-07-06 12:38

נזכרתי!! hhhh
ככה:
אתה מקבל את המחרוזת: BlueNosE
במסד המחרוזת היא: BlueNosE
המשתמש יכול לרשום את הדברים הבאים והכל יתקבל:
bluenose
bLUEnOSe
Bluenose
BluenosE
BlueNosE
איך?
לטקסט המתקבל, עושים strtolower()
אחר כך משווים במסד ככה:
קוד:

SELECT * FROM tbl WHERE LOWER(username) = {$username}
בהנחה שusername הוא כבר אחרי STRTOLOWER...
תנסה:
http://skyawr.webitem.co.il/
תירשם באנגלית... ותראה

Eye-Soft 04-07-06 13:01

הייתה שאלה כזו לפי כחודש חודשיים. חבל שלא ביצעת חיפוש.
ישנם שתי דרכים, האחת LIKE אך זהו לחיפוש כללי והאחת היא שימוש בפונקציה הLOWER של שפת הSQL
משמע,
Where LOWER(colName)=('TEXT')

Itay 04-07-06 13:07

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

פעם הבאה - חפש בגוגל, הכי קל :)

בניה 04-07-06 13:08

ב"ה

ציטוט:

הייתה שאלה כזו לפי כחודש חודשיים. חבל שלא ביצעת חיפוש.
יש לי עוד שאלה;P
תקרא שוב.

eLad 04-07-06 13:08

ציטוט:

נכתב במקור על ידי בניה
ב"ה


מה עם הביטויים רגולרים?
יש דבר דומה לזה בMYSQL?

מה הכוונה REGEXP? שמה יעשה?

בניה 04-07-06 13:14

ציטוט:

נכתב במקור על ידי eLad
מה הכוונה REGEXP? שמה יעשה?

ב"ה


חיפוש.
שזה ישלוף איפה שיש התאמה לביטוי.
אני יודע שיש את הסימן % השאלה שלי אם יש עוד דברים דומים.

eLad 04-07-06 17:08

ציטוט:

נכתב במקור על ידי בניה
ב"ה


חיפוש.
שזה ישלוף איפה שיש התאמה לביטוי.
אני יודע שיש את הסימן % השאלה שלי אם יש עוד דברים דומים.

עדיין לא יורד לסוף דעתך עם ה RE ..

אתה יכול להשתמש בסימן % (או *):

קוד:

SELECT fld1,fld2 FROM tbl WHERE fld1 LIKE '%elad'
איפה ש fld מסתיים ב elad

קוד:

SELECT fld1,fld2 FROM tbl WHERE fld1 LIKE 'elad%'
מתחיל ב elad

קוד:

SELECT fld1,fld2 FROM tbl WHERE fld1 LIKE '%elad%'
מכיל elad

קוד:

SELECT fld1,fld2 FROM tbl WHERE fld1='elad'
שווה ל elad

RS324 04-07-06 17:27

בבקשה למרות שממבט מהיר זה נראה טיפה שונה

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

לגבי CS
ב MYSQL החדש יש לך לדוגמא :
latin1_general_cs
ו
latin1_general_ci

עכשיו CS זה case sensitive
ו CI זה ההפך...

בניה 04-07-06 17:46

ב"ה



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

SELECT * FROM tbl WHERE NAME=[^b]
והכוונה שאם יהיה match בין מה שיש בתא לביטוי רגולרי אז שישלוף אותו.

******עריכה****
לא שמתי לב לתגובה שלך.

תודה רבה!


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

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