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

הוסטס - פורום אחסון האתרים הגדול בישראל (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')


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

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