lewy87r
29.06.2008, 16:57:34
Witam,
problem pewnie banalny ;] ale ja nie znalazlem info w necie ;] tu na forum tez ;] albo slabo szukalem albo nie ma tego ;]
a chodzi o to ze chce cos w bazie danych wyszukac po nazwie i zapytanie uwzglednia mi wielkosc liter czyli jak wpisze w wyszukiwarce "przywieszki" to mi nic nie znajdzie a jak wpisze "Przywieszki" to znajdzie ;] (w bazie jest z wielkiej oczywiscie zapisane) co zrobic by zapytanie nie uwzglednialo wielkosc i liter?
Lion_87
29.06.2008, 17:00:41
może zrób tak aby dane zapisywały się do tabeli z małych liter
lewy87r
29.06.2008, 17:17:04
Gdzies wyczytalem ze mysql standardowo nie widzi wielkosci liter ;] a jednak chyba widzi to znaczy myslalem ze z malej ale to jest bez sensu bo to sa nazwy przedmiotow w sklepie ;] a skrypt robie dla klienta, i takie rozwiazanie bylo by problemem ;]
l0ud
29.06.2008, 17:21:08
Strzelam

Wyszukiwanie przez LIKE nie zwraca uwagi na wielkość liter. Możesz też spróbować użyć funkcji LOWER() i porównywać z małymi znakami
SELECT * FROM tabela WHERE LOWER(kolumna) = "przywieszki";
lewy87r
29.06.2008, 17:27:33
no przez like zwracalo mi uwage ;] ale funkcja LOWER rozwiazala calkowicie problem ;] dzieki :*
Standardowo MySQL korzysta z zestawienia znaków z parametrem _ci (case insensitive), np. latin2_general_ci lub utf8_general_ci. PostgreSQL zaś standardowo uwzględnia wielkość znaków. Jeśli więc problem występuje pod MySQLem, to prawdopodobnie wystarczy zmienić kodowanie tabel/bazy danych na jakieś case insensitive.
ryju
29.06.2008, 18:37:01
Możesz spróbować zmienić sposób porównań dla interesującej cię tabeli:
ALTER TABLE `nazwa_tabeli` CONVERT TO CHARACTER SET latin2 COLLATE latin2_general_ci,
DEFAULT CHARACTER SET latin2 COLLATE latin2_general_ci;
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.