Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Case sensitivity

[es] :: MySQL :: Case sensitivity

[ Pregleda: 2192 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
*.dynamic.isp.telekom.rs.



+25 Profil

icon Case sensitivity28.08.2010. u 15:01 - pre 166 meseci
Molim vas, kako da ukljucim case-sens u MySQL konekciji?

da ova dva upita na primer ne daju isti rezultat:

Code:
SELECT * FROM countries WHERE name='serbia';

Code:
SELECT * FROM countries WHERE name='Serbia';

I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Case sensitivity28.08.2010. u 15:25 - pre 166 meseci
upotrebite binarnu kolaciju, ona je case sensitive
Code:

mysql> select 'ABC' = 'abc';
+---------------+
| 'ABC' = 'abc' |
+---------------+
|             1 | 
+---------------+
1 row in set (0.00 sec)

mysql> select 'ABC' = 'abc' collate latin1_bin ;
+----------------------------------+
| 'ABC' = 'abc' collate latin1_bin |
+----------------------------------+
|                                0 | 
+----------------------------------+
1 row in set (0.00 sec)



COLLATE mozete da koristite kada hocete to samo u nekim slucajevima, ako hocete uvek, samo napravite da su polja koja hocete da pretrazujete case sensitive u kolaciji koja je binarna (ili u _cs kolaciji ... dakle ili *_bin ili *_cs). Dostupne kolacije vidite sa "show collation;"
 
Odgovor na temu

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
*.dynamic.isp.telekom.rs.



+25 Profil

icon Re: Case sensitivity29.08.2010. u 12:57 - pre 166 meseci
Znaci moram pri svakom upitu... mogu za npr celu konekciju da stavim COLLATE binarni ili npr na celu bazu ili tabelu?
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Case sensitivity29.08.2010. u 17:34 - pre 166 meseci
Citat:
Milan M. Radovic: Znaci moram pri svakom upitu... mogu za npr celu konekciju da stavim COLLATE binarni ili npr na celu bazu ili tabelu?


NE, NE, DA

kolacije nemaju nikakve veze sa konekcijom, vezane su za podatke. kolaciju setujete u upitu (to je generalno sporije posto generalno kastujete podatak iz jednog tipa u drugi) ili u samoj tabeli (setujete default za bazu, to nasledjuju tabele ako ne navedete explicitno, setujete za tabelu, to nasledjuju atributi (polja) ako ne navedete explicitno - i setujete na kraju za atribute). Svaki atribut moze da ima razliciti karakter set i razlicitu kolaciju. Obratite paznju da promena "visih instanci" nece propagirati promene na nize. Dakle ako je default kolacija baze utf8_bin i vi imate tu neke kreirane tabela, promenom default kolacije necete promeniti nista na postojecim tabelama, samo ce nove implicitno naslediti tu kolaciju dok ce stare ostati kakve su bile.

dakle kako sam napisao ovde:

Citat:
bogdan.kecman
COLLATE mozete da koristite kada hocete to samo u nekim slucajevima,


Dakle ako vam treba "samo po nekad" onda koristite COLLATE u sql upitu

Citat:
bogdan.kecman:
ako hocete uvek, samo napravite da su polja koja hocete da pretrazujete case sensitive u kolaciji koja je binarna (ili u _cs kolaciji ... dakle ili *_bin ili *_cs)


Dakle ako hocete da ta polja UVEK poredite case sensitive onda postavite kolaciju koja je case sensitive. Na primer:

Code:

mysql> create table t3 (id int auto_increment primary key not null, f1 char(20) character set utf8 collate utf8_general_ci)engine=myisam;
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> create table t4 (id int auto_increment primary key not null, f1 char(20) character set utf8 collate utf8_bin)engine=myisam;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

mysql> insert into t3 (f1) values ('AAA'), ('Aaa'),('aaa');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> insert into t4 (f1) values ('AAA'), ('Aaa'),('aaa');
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from t3 where f1='Aaa';
+----+------+
| id | f1   |
+----+------+
|  1 | AAA  | 
|  2 | Aaa  | 
|  3 | aaa  | 
+----+------+
3 rows in set (0.02 sec)

mysql> select * from t4 where f1='Aaa';
+----+------+
| id | f1   |
+----+------+
|  2 | Aaa  | 
+----+------+
1 row in set (0.01 sec)

mysql> select * from t3 where f1='Aaa' collate utf8_bin;
+----+------+
| id | f1   |
+----+------+
|  2 | Aaa  | 
+----+------+
1 row in set (0.00 sec)

mysql> select * from t4 where f1='Aaa' collate utf8_general_ci;
+----+------+
| id | f1   |
+----+------+
|  1 | AAA  | 
|  2 | Aaa  | 
|  3 | aaa  | 
+----+------+
3 rows in set (0.00 sec)


nadam se da je sada bilo dovoljno jasno
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
*.static.isp.telekom.rs.

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Case sensitivity30.08.2010. u 07:19 - pre 166 meseci
Ako je polje u tabeli binarno onda će i sortiranje biti case sensitive.
"Common sense is not so common." - Voltaire
 
Odgovor na temu

Milan M. Radovic
Web Developer
Pančevo

Član broj: 16959
Poruke: 743
*.dynamic.isp.telekom.rs.



+25 Profil

icon Re: Case sensitivity30.08.2010. u 08:32 - pre 166 meseci
Excelent :) Hvala VAM a LOT! :D:D:D:D
I don't need a girl for sex , All I Need is Binary and HEX
 
Odgovor na temu

[es] :: MySQL :: Case sensitivity

[ Pregleda: 2192 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.