SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 18.11.2016 20:10:53

LazY
_cмельчак
MySQL Authorized Developer and DBA
Зарегистрирован: 02.04.2007
Сообщений: 845

character_set_client и character_set_connection - зачем второе?

Давно хотел узнать, но стеснялся спросить.
Что такое кодировка соединения и в каком случае она может отличаться от кодировки клиента?

Неактивен

 

#2 18.11.2016 23:22:37

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: character_set_client и character_set_connection - зачем второе?

http://dev.mysql.com/doc/refman/5.7/en/charset-connection.html написал:

What character set should the server translate a statement to after receiving it?

For this, the server uses the character_set_connection and collation_connection system variables. It converts statements sent by the client from character_set_client to character_set_connection (except for string literals that have an introducer such as _latin1 or _utf8). collation_connection is important for comparisons of literal strings. For comparisons of strings with column values, collation_connection does not matter because columns have their own collation, which has a higher collation precedence.

Неактивен

 

#3 18.11.2016 23:24:54

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: character_set_client и character_set_connection - зачем второе?

То есть, если напишешь

SELECT IF('кошка'='собака',1,2);

сервер преобразует эти строки из character_set_client в character_set_connection и затем сравнит. Для сравнения строковых констант с колонками таблицы используется character_set, определенный для таблицы, а character_set_connection игнорируется.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson