[mySQL] LIKE case sensitive ?!
 
blackmamba 18. jul 2010 12:33:49 Pridružen od:
4. mar 2008
559 objav
392 25 11
#1

Imam InnoDB tabelo "hrana", collation utf8slovenianci

Not imam zapis "Goveja juha"



Tale poizvedba vrne rezultat in deluje ok:


SELECT * FROM hrana WHERE jed LIKE '%go%'

Čeprav je v tabeli zapis z veliko začetnico, vrne rezultat.



Tale pa že ne več:


SELECT * FROM hrana WHERE jed LIKE '%gov%'

Je enako kot prej, samo ena dodatna črka in ne najde nič WFT ?!?



V redu pa dela, če napišem z velikimi


SELECT * FROM hrana WHERE jed LIKE '%Gov%'

imam nastavljen SET CHARACTER SET 'utf8'

in SET NAMES 'utf8'



probal sem že tudi kombinacije z UPPER(jed) in LOWER(jed) in mb_strtoupper()...



Do sedaj nisem nikoli tega opazil ali pa ni bilo problema.

Mysql verzija = 5.1.48



Kašna ideja?


všeč(0) ni všeč(0) spam(0)
 
blackmamba 18. jul 2010 12:47:47 Pridružen od:
4. mar 2008
559 objav
392 25 11
#2

Aaahhhhh sem ugotovil napako ... field je bil tipa varbinary namesto varchar!!!


všeč(0) ni všeč(0) spam(0)
 
muadib 16. avg 2010 09:08:44 Pridružen od:
6. avg 2010
4 objav
1 0 0
#3

Pazi tudi pri izbiri "kolejšna", kajti "kolejšn" ki se konča na cs ali bin je case sensitive, ostali ki se končajo na ci so pa case insensitive.



Se pravi latin2bin ali utf8bin je case sensitive, dočim utf8generalci ali pa latin2croatianci pa je case insensitive.


všeč(1) ni všeč(0) spam(0)
 
kelvan 24. avg 2010 17:08:50 Pridružen od:
19. okt 2007
891 objav
658 122 26
#4

ce imas nastavljeno case sensitive, lahko uporabis tudi

SELECT * FROM hrana WHERE UPPER(jed) LIKE '%GOV%'


všeč(1) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se