quba
25.10.2010, 16:46:30
Co muszę zrobić, by mysql zwracał wyniki niezależnie od wielkości znaków słowa zapisanego w bazie danych?
Przykładowo gdzieś w tekście w bazie danych pojawia sie słowo 'razDWATRZY'. Obecnie, by wyszukać taki element za pomocą match against, musze podać dokładnie taki ciąg znaków. Ciekawi mnie to, gdyż współpracując z inną bazą danych, wyszukiwało mi w ten sam sposób dobrze (nie patrząc na wielkość liter). Dodałem oczywiście klucz fulltext na kolumne w której szukam. Może ma to związek z ilością rekordów w danej tabeli?
Wicepsik
25.10.2010, 16:51:30
quba
25.10.2010, 16:56:15
Jakiś przyklad uzycia? Rozumiem, ze mogę zmniejszyc wielkosc znakow danych, ktore pobieram poprzez LOWER(kolumna). Nie wydaje mi się jednak, by można było tego użyć w stosunku do danych, które mam przeszukiwać.
Wicepsik
25.10.2010, 17:05:48
Cytat(quba @ 25.10.2010, 17:56:15 )

Jakiś przyklad uzycia?
Podane w linkach?
Pokaż swoje zapytanie
quba
25.10.2010, 17:12:08
SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('costam' IN BOOLEAN MODE);
SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('COSTAM' IN BOOLEAN MODE);
SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ('CoStAm' IN BOOLEAN MODE);
Chcę, aby każde z tych zapytań zwracało ten sam wynik.
Wicepsik
25.10.2010, 17:26:52
'costam' to wartość z formularza?
quba
25.10.2010, 17:30:11
tak
Wicepsik
25.10.2010, 17:56:21
mysql_query('SELECT `text_title` FROM portal_text WHERE MATCH (`text_title`, `text_cache`) AGAINST ("'.strtolower('CoStAm').'" IN BOOLEAN MODE)');
quba
25.10.2010, 18:10:02
Widać się nie rozumiemy. Chodzi mi o to, że np. chcąc odszukać COŚTAM, zwróci mi zarówno wiersze, w których wystąpiło cośtam, jak i coŚtAm (W BAZIE). Obecnie muszę w kryterium wyszukiwania wskazac tekst dokładnie odpowiadający temu w bazie danych.
Odpowiadałem kilka wątków niżej na bardzo podobne pytanie, musisz ustawić sposób porównywanie napisów w bazie na ..._ci, żeby indeksował wyrazy bez uwzględniania wielkości znaków, nie wiem jakie masz aktualnie, dla języka polskiego może to być: `utf8_polish_ci` ewentualnie `latin2_general_ci`
quba
25.10.2010, 21:55:26
dzięki, wiedziałem że to coś w ten deseń, ponieważ w poprzedniej bazie mialem latin2_general_ci i działało. Jeszcze nie sprawdzalem, ale na pewno to to, dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.