Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Brak rozróżnienia liter przy WHERE
.radex
post
Post #1





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


Jak to zrobić? W tej chwili pracuję nad domenami typu xxx.domena.pl, gdzie xxx to nazwa użytkownika i to przekierowuje na profil użytkownika, a przeszukanie całej listy użytkowników i strtolower() to nie jest dobry pomysł, więc potrzebuję rozwiązania czysto sql-owego.

Pozdrawiam.


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
czachor
post
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


...WHERE LOWER()..
...ILIKE...

Chociaż mi się wydaje, że lepiej jest zrobić to w php, bo baza zrobi to wolniej.

Ten post edytował czachor 15.01.2008, 17:26:22


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
.radex
post
Post #3





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

Ostrzeżenie: (0%)
-----


ale ja nie chce zrobić strtolower() na tekst. Albo ty źle zrozumiałeś mnie, albo ja nie wiem jak użyć tych przykładów


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
czachor
post
Post #4





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Hm, no ale musisz wykonać przeszukiwanie case-insensitive, więc albo w php albo w bazie musisz użyć funkcji zmieniającej wielkość liter... W bazie danych robisz "WHERE LOWER(pole) = LOWER('użytkownik')", ale uważam, że lepiej użyć strtolower() - IMO szybciej, chociaż przyznaję, że nie testowałem.

A może faktycznie ja Cię nie rozumiem smile.gif


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
envp
post
Post #5





Grupa: Zarejestrowani
Postów: 359
Pomógł: 1
Dołączył: 16.04.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Albo za pomocą LIKE... lub

Kod
mysql> select * from test_case where binary name  = 'Kamil';
Go to the top of the page
+Quote Post
nrm
post
Post #6





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

Ostrzeżenie: (0%)
-----


ale masz rozróżnianie liter w userach i mozna mieć 2 takie same nicki rożniące się tylko wielkością? To raczej błąd.

U mnie user jest unikalny, obojętnie jaka wielkośc liter i tym samym mysql bezproblemowo sobie szuka usera zwykłym where, żadna różnica czy wpisze NICK czy nick.

(też nie wiem czy cie dobrze zrozumiałem bo u mnie takie rozwiązanie jak twoje działa bez żadnych problemów).


--------------------
Go to the top of the page
+Quote Post
czachor
post
Post #7





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(envp @ 15.01.2008, 17:55:58 ) *
Albo za pomocą LIKE...

LIKE jednak nie jest dobrym pomysłem - do szukania konkretnego rekordu stworzono WHERE, które jest szybsze.


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 01:48