![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki problem, Wyszukuje sobie w bazce nazwiska zapytankiem $zapyt = "SELECT nazwisko, imie FROM telzks where nazwisko like \"%$x%\""; gdzie $x jest wrowadzane przez formularz, Wszystko chodziło by swietnie gdyby wyszukiwało mi niezaleznie od wielkosci liter. A teraz mam tak np: wprowadzam = lew i zwraca mi Polewski, ale juz Lewandowski nie zostaje odnaleziony. A ja chce by mi zwróciło obydwa nazwiska!. Podczas projektu bazki gdy nie miałem jeszcze polskich liter i ustawionego kodowania, (było chyba latin1_swedish_ci)chodziło mi dobrze(litera duza i mała sa chyba oznaczone tym samym kodem), Ale gdy dam w bazie UTF-8, lub latin2 by miec polskie ogonki,Wielkosc liter jest brana pod uwage. Jak zrobić by mieć polskie litery i wyszukiwanie niezaleznie od wielkosci liter w w podanej frazie?? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Moze to ci pomoze:
http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
jakos nie bardzo mi to pomogło ;-(
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
No i dalej nie działa!
Nie nie widzi mi tego BINARY zapytanie zwraca stare wyniki =Lewandowski i =polewsk ale obydwu na raz za nic w swiecie ![]() Prosze nie zabijajcie we mnie nadzieji, ja naprawde nie chce robic wiochy typu.... LIKE X...OR...LIKE Y i niezaleznie co user sobie tam wpisze w formie zamienilbym x na małe litery, a nastepnie z x pierwszą na duzą i wten sposob mialbym Y, wystawił to w zapytanko i jazda... Myslałem ze da sie potraktowac to zagadnienie w jakis elegancki sposób |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dziwne... w manualu stoi:
Cytat The following two statements illustrate that string comparisons are not case sensitive unless one of the operands is a binary string:
mysql> SELECT 'abc' LIKE 'ABC'; -> 1 mysql> SELECT 'abc' LIKE BINARY 'ABC'; -> 0 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Bo i wlasnie tak jest. Poto wlasnie podalem linka wczesniej, by to podkreslic. Ogolnie myslql nie zwraca uwage na wielkoscliter, ale mozna to ustawic. Mozna to ustawic na dane wyszukiwanie, mozna i na stale na tabelę. I może wlasnie tutaj masz ustawione na stale. Musisz to zmienic:
Cytat col_name COLLATE latin1_general_cs LIKE 'a%' Czyli sprawdź, czy nie masz tego ustawionego
col_name LIKE 'a%' COLLATE latin1_general_cs col_name COLLATE latin1_bin LIKE 'a%' col_name LIKE 'a%' COLLATE latin1_bin If you want a column always to be treated in case-sensitive fashion, declare it with a case sensitive or binary collation. See Section 13.1.5, “CREATE TABLE Syntax”. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 6.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
Dziekuje koledzy za szybkie odpowiedzi, a przede wszyskim chęć udzielenia pomocy.
Ale jakos dalej nie radze sobie z tym.(prosze o wyrozumialosc ale jestem PrzedPoczątkujący ![]() Cytat I może wlasnie tutaj masz ustawione na stale. Musisz to zmienic: Nie wiem gdzie miałbym to zmienic ,nie mam zadnych wpisów z COLLATE w my.ini Moze to wyda wam sie smieszne, ale probowłem tego uzyc w ten sposób:
no i zwracalo mi tylko Polewskiego Bez COLLATE rozroznia mi wielkosc liter z COLLATE tez w my.ini mam oczywiscie Kod [mysqld] ...... ...... default-character-set=latin2 [client] default-character-set=latin2 Baza , tabela i pola w tabeli tez są w latin2_bin Jestem podłamany...przeciez nie moze byc to az tak trudne ______________________________________________________________ Ha juz mam! wystraczyło ...utworzyc bazke i tabele za pomocą komend zawartych w pliku (odpalonego pod shelem), a nie jak do tej pory to robiłem za pośrednictwem PHPAdmin(w którym chyba mam z tym Collate cos domyslnie nasr@#$@e przy tworzeniu nowej bazki). Bo gdy tworze bazke bez PHPAdmina jako domyslny format tabeli dostaje latin2_general_ci i wszystko jest OK, Mam polskie ogony i wyłączone te COLLATE a co za tym idzie podczas wyszukiwania nie jest brana pod uwage wielkosc liter. Cel osiągnięty!. ![]() Rozumiem że jak chce to miejscowo włączyc to odpalam zapytanie z zawartym collate okreslającym konkretne pole. Dzięki Wszystkim za pomoc. "....jestem silny Waszą siłą , jestem mądry Waszą mądrością...." Ten post edytował Unises 9.02.2006, 07:14:59 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.05.2025 - 07:27 |