Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MySQL AES_DECRYPT špatně řadí diakritiku

Ahoj, navazuju na můj předchozí dotaz (2745852-ktery-mysql-dotaz-je-lepsi)

Mám mysql tabulku kde pomocí aes_encrypt ukládám data uživatelů a pomocí aes_decrypt data zase vytahuju, ale s hrůzou jsem teď zjistil, že když mám například takto uloženo příjmení a vypisuju seznam uživatelů, tak mi to podle toho příjmení blbě řadí - písmenka s diakritikou jsou až na konci

řadím to takto: ORDER BY AES_DECRYPT(SURNAME, SHA2(muj_tajny_kod)) ASC

Co s tím - potřebuju to opravit... Díky moc za pomoc...

Předmět Autor Datum
Nastav si správně collation: https://dev.mysql.com/doc/refman/5.7/en/charset-collate.html nový
Wikan 09.03.2018 15:07
Wikan
ahoj, díky za odpověď... DB už má utf8_czech_ci Když to dám přímo za ten order tak dostanu tuto chy… nový
n.u.r.v. 09.03.2018 15:19
n.u.r.v.
Tak to ještě zkus přecastovat: https://stackoverflow.com/questions/16556375/how-to-use-aes-encrypt-a… nový
Wikan 09.03.2018 15:35
Wikan
aha, to už vypadá líp - i když to ž dalo před z, ale budu ještě hledat - trochu se bojím co to udělá… nový
n.u.r.v. 09.03.2018 15:43
n.u.r.v.
Ahoj, tak vypadá to že to funguje - ale musí se to udělat takto: Na začátku SQL dotazu dát SET NAM… nový
n.u.r.v. 13.03.2018 10:18
n.u.r.v.
pozri si vypis z prikazu: EXPLAIN nazov_tabulky; jedna vec je, ze si collation nastavil databaze, a… nový
cigan 13.03.2018 10:50
cigan
Tabulka i všechny textové sloupce mají nastaveno utf8_czech_ci, ale encodovaný sloupce podle kterých… poslední
n.u.r.v. 13.03.2018 11:07
n.u.r.v.

pozri si vypis z prikazu:
EXPLAIN nazov_tabulky;

jedna vec je, ze si collation nastavil databaze, ale tabulky, ktore uz su vytvorene maju collation na kazdom stlpci typu char, varchar, ... a tam bude asi este ta nespravna.
Tie treba tiez explicitne zmenit cez ALTER TABLE a modify.

Zpět do poradny Odpovědět na původní otázku Nahoru