LIKE '%key%'

3 отговора 154 прегледа
#1

LIKE '%key%'

Здравейте всички,
Получи се нещо много странно или поне за мен е странно. Изпълнявам една проста заявка:
SELECT name FROM books WHERE name LIKE '%кон%' AND active=1;
Първите записи който ми връща са на лице. Съдържат думата кон в указаното за търсене поле. Но изникват и други записи който не знам по каква причина се появяват. За горната заявка специално последния запис който ми връща е:
Професионално Java за мрежови приложения. В този запис не откривам нищо общо с '%кон%'. Та молбата ми е някой ако може да ми обясни как точно работи това. Това което аз знам е че търси съвпадения в указаните полета за тези символи + всички останали преди и след тях но тези 3 символа трябва да съществуват последователно. Версията на МъСЯЛ е: 4.0.15-standard

Break The UnBreakable
Отговор
в отговор на nupaT #2

Re: LIKE '%key%'

пф...
не би трябвало... може да се бърка нещо заради кирилицата но... сякаш не ми се е случвало... ще ме караш сега да проверявам вече всеки резултат който ми се връща при подобна заявка :)
незнам наистина честно казано мисля че не ми се е случвало или поне не съм забелязал...
единственото нещо за което се сещам като причина е кирилицата... и най вероятно е от нея... друго невиждам както може да е...за съжаление...

Отговор
в отговор на Spedge #3

Re: LIKE '%key%'

Между другото и аз така смятах. И вече си рехих проблема с ПХП код.
Но все пак ми е интересно да разбера защо се е получило така.
Ако някой знае няма да е лошо да разясни това онова :)

Break The UnBreakable
Отговор
в отговор на nupaT #4

Re: LIKE '%key%'

Всичко идва от encoding-а на базата. Ако той е latin1, както е по default, то буквите "лно" и "кон" са едни и същи - латинските eei, но с различни ударения. Можеш и сам да се убедиш в това със следния HTML пример:

Професионално Java за мрежови приложения


кон


Пусни го в win1251 encoding, а след това в iso-8859-1.

Т.е. това, което трябва да оправиш е променливата default-character-set=win1251

Everything louder than everything else...

Редактирано от Dakota на

Отговор