1.5 KiB
name, description, type, originSessionId
| name | description | type | originSessionId |
|---|---|---|---|
| Polskie znaki w mysql LIKE przez shell | LIKE z polskimi znakami (szczególnie ł) w zapytaniach mysql uruchamianych z git-bash nie zawsze dopasowuje — użyj hex-encoded pattern w CONCAT | feedback | 6b490a59-53d2-4351-8049-2be9d065ec83 |
Przy filtrowaniu klientów w /wygeneruj-projekty — jeśli imię/nazwisko zawiera polskie znaki (szczególnie ł, ale też ę/ń w niektórych kombinacjach), LIKE w postaci WHERE oa.name LIKE '%Małgorzata%' przekazane przez mysql.exe -e "..." z git-bash może zwracać zero wyników, mimo że rekord istnieje w bazie.
Why: shell/terminal/console transkoduje polskie znaki niespójnie między git-bash a mysql.exe (ConvertTo z UTF-8 na code page Windows i z powrotem). Charset kliencki --default-character-set=utf8mb4 nie zawsze to naprawia. Rekord w bazie jest poprawnie UTF-8, ale pattern LIKE po przejściu przez shell zawiera inne bajty.
How to apply: Jeśli zapytanie dopasowania klienta po nazwisku zwraca 0 wyników, a jesteś pewny że rekord istnieje — ponów z hex-encoded wzorcem:
-- Zamiast: WHERE oa.name LIKE '%Stępińska%'
-- Użyj:
WHERE oa.name LIKE CONCAT('%', 0x5374C4997069C584736B61, '%')
Hex wygenerować w shell: printf 'Stępińska' | od -An -tx1 | tr -d ' \n' → 5374C4997069C584736B61.
Lub użyj samego fragmentu bez polskich znaków (np. tylko nazwisko %tarnowska%, %fundakowska%) gdy to wystarcza do jednoznacznego dopasowania.