SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
07. 04. 2007. | #1 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
MySQL case insensitive?
Kako je skoro napomenuto da se podsticu zanimljive teme, setih se i ja jedne. :-)
Iskusni vuci ovo verovatno znaju, ali evo za one koji nisu: Komparacija stringova sa operaterom "=" je case-insensitive u MySQL-u jos od verzije 3.23.neke! Dakle, upiti: Kôd:
SELECT * FROM tabela WHERE stringPolje = 'nesto'; SELECT * FROM tabela WHERE stringPolje = 'NESTO'; Nekada davno imao sam koshmar sa autentikacijom korisnika zbog ovoga... Pa eto za buduca pokolenja... ;-) |
07. 04. 2007. | #2 |
133t
Master
|
moras da naznacis da je polje case sensitive: COLLATE latin1_general_cs
Kôd:
CREATE TABLE `test` ( `testString` VARCHAR( 128 ) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL ) TYPE = MYISAM Kôd:
INSERT INTO `test` ( `testString` ) VALUES ('dpt' ), ('DPT'); Kôd:
mysql> select * from test; +------------+ | testString | +------------+ | dpt | | DPT | +------------+ 2 rows in set (0.00 sec) Kôd:
mysql> select * from test where testString='dpt'; +------------+ | testString | +------------+ | dpt | +------------+ 1 row in set (0.00 sec) prilikom autentifikacije za passworde koristi md5 - nema boli glava. Poslednja izmena od kodi : 07. 04. 2007. u 08:30. |
07. 04. 2007. | #3 |
profesionalac
Professional
Datum učlanjenja: 15.06.2005
Lokacija: Chicago IL, USA
Poruke: 209
Hvala: 12
12 "Hvala" u 11 poruka
|
Bravo kodi (eto vuka)! Eto, sad imamo i resenje.
Inace, nekada davno problem uopste nije bio u lozinkama (gde stoji opaska za MD5()), vec u tome da tabela sa UNIQUE KEY `username` nije dopustala unos vrednosti koje nema u bazi... |
07. 04. 2007. | #4 |
Goran Pilipović
Sir Write-a-Lot
|
Najjednostavniji nacin, bez collation, je da koristis BINARY. Cak ne moras VARCHAR polje da oznacis kao BINARY, dovoljno je da u upitu napises:
Kôd:
SELECT * FROM tabela WHERE BINARY stringPolje = 'nesto'; SELECT * FROM tabela WHERE BINARY stringPolje = 'NESTO';
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman I don't always know what I'm talking about but I know I'm right! |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
case insensitive URLs | dee | Regular expression i htaccess | 7 | 11. 04. 2007. 17:17 |
Cudan case-sensitivity problem | zextra | SQL baze podataka - Sponzor: Baze-Podataka.net | 3 | 30. 04. 2006. 03:07 |
Problem sa cAse sEnsitivE pretragom и ћирилицом | LyoShi | SQL baze podataka - Sponzor: Baze-Podataka.net | 2 | 09. 04. 2006. 20:50 |
Case study: Marketing strategija za prodaju web komponenti | boccio | Marketing i SEO | 21 | 15. 08. 2005. 17:42 |