Files
orderPRO/.claude/memory/feedback_mysql_polskie_znaki.md
2026-04-22 13:21:14 +02:00

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.