剛剛閱讀Stefan Gehrig對Is "SET CHARACTER SET utf8" necessary?的優秀回答,它比MySQL的文檔更詳細地解釋瞭解釋和運行查詢的幾個階段w.r.t.字符集和歸類,但我仍然無法真正看到character_set_connection的用途,或者更具體地說,將character_set_client中的語句轉碼爲character_set_connection。character_set_connection的用途是什麼?
爲什麼不直接使用character_set_client進行查詢,並在與列值比較時直接從character_set_client轉換爲字符集的字符集?這個中間階段的目的是什麼?這本手冊給出了比較字面刺激的例子,但爲什麼你要這樣做,更不用說在character_set_connection中與character_set_client相對立呢?除非我對此的理解(例如「select'somestr'='somestr'from x」)是錯誤的。
謝謝。
您可能會得到不滿意的答案。我很可能是因爲MySQL網絡協議不支持傳輸服務器使用的編碼,因此客戶端需要知道如何解釋通過網絡傳來的字符,並且由於兼容性的原因它尚未被破壞。我只是猜測,這不是一個答案。 – 0xCAFEBABE
感謝您的回覆,也許我不明白,但我認爲character_set_results用於發送結果,並由客戶端選擇。據我所知,解釋中,character_set_connection只在MySQL內部使用。 – lm713
我相信這是MySQL在接收數據時會用到的東西 –