Database and different case.

0

Why when I ask database for small "s". It gives me big "S" if its exists there too?
Dlaczego gdy pytam baze danych o male "s". Baza daje mi duże "S" jeśli jest tam także?

How to get the answer with specified case?
Jak otrzymać odpowiedz z bazy z konkretną wielkością liter?

Database: MySQL.
Question: SELECT * FROM users WHERE username='s'

Answer: a row with username "S" and username "s" ;(

0

Zgodnie z dokumentacją/According to documentation

The default character set and collation are latin1 and latin1_swedish_ci, so nonbinary string comparisons are case insensitive by default.

SELECT *  FROM `tabela` WHERE BINARY `kolumna` = 'wartość'
SELECT *  FROM `table` WHERE BINARY `column` = 'value'

Uwaga!/Caution!
Jeżeli masz założony indeks na kolumnie, to użycie BINARY może spowodować (nie sprawdzałem), że nie zostanie on użyty.
If you have an index on column, using BINARY might cause (I haven't checked yet) it won't be used.

0

Zmieniłem kodowanie na utf8mb4_polish_ci i nadal jest to samo. Dostaje w odpowiedzi i małe "s" i duże "S".
p.s. Nie wiem co znaczy mieć założony index na kolumnie.

p.s.2 utf8_polish_ci także nie dziala

0

@Irus8: przeoczyłeś zapytania, które podesłałem?

1

Kodowanie typu utf8_language_ci - ma affix "ci" - czyli case insensitive. Daj kodowanie bez ci i będzie dobrze.

0

@Desu

Dziękuję za pomoc. Problem jest rozwiązany.

1

No problem very kind help you

1 użytkowników online, w tym zalogowanych: 0, gości: 1