Po prostu przeczytaj znakomitą odpowiedź Stefana Gehriga na Is "SET CHARACTER SET utf8" necessary?, która idzie nieco dalej niż dokumentacja MySQL wyjaśniająca etapy interpretowania i uruchamiania zapytania w.r.t. zestawy znaków i sortowania, ale nadal nie widzę celu funkcji character_set_connection, a dokładniej transkodowania instrukcji od character_set_client do character_set_connection.Jaki jest cel funkcji character_set_connection?
Dlaczego po prostu nie używać character_set_client dla zapytania i transkodowania prosto z character_set_client do zestawu znaków kolumny przy porównywaniu z wartościami kolumn? Jaki jest cel tego etapu pośredniego? Instrukcja podaje przykład porównywania literalnych żądań, ale dlaczego chcesz to zrobić na pierwszym miejscu, nie mówiąc już o character_set_connection jako przeciwstawiającej się character_set_client? Dopóki moje zrozumienie tego (coś w stylu "wybierz" somestr "=" somestr "od x") jest błędne.
Dziękuję.
Możesz otrzymać niezadowalającą odpowiedź. Mógłbym być tak, że protokół sieciowy MySQL nie wspierał przesyłania kodowania używanego przez serwer, a zatem klient musiał wiedzieć, jak interpretować znaki przychodzące przez sieć i nie został złamany ze względu na kompatybilność. Zgaduję, to nie jest odpowiedź. – 0xCAFEBABE
Dzięki za odpowiedź, a może nie rozumiem, ale myślę, że character_set_results służy do wysyłania wyników, a to jest wybierane przez klienta. O ile wiem z wyjaśnień, character_set_connection jest używane tylko wewnętrznie przez MySQL. – lm713
Sądzę, że to właśnie MySQL użyje przy otrzymywaniu danych –