SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 02.06.2018 10:28:37

immelnikoff
Участник
Зарегистрирован: 19.04.2018
Сообщений: 7

Вопрос по кодировкам: character_set_client и character_set_connection

Хотел прояснить для себя два момента.
Вопрос 1: Допустим, character_set_client = cp1251. Это означает, что сервер MySQL будет ожидать от клиента текст sql-запросов в кодировке cp1251?
Вопрос 2: Теперь пусть character_set_connection = utf8mb3 и пусть требуется в sql-запросе выполнить сравнение строки с полем type таблицы animals. При этом поле type таблицы animals имеет кодировку koi8r. Запрос, например, такой:
SELECT id FROM animals WHERE type = 'кошка'.
MySQL-сервер получает этот запрос в кодировке cp1251, затем переводит поле записи type из кодировки koi8r в кодировку utf8mb3 и строку 'кошка' из кодировки cp1251 в кодировку utf8mb3 и уже только после этого производит сравнение (согласно установленному collation)?
Я всё правильно понимаю? Спасибо!

Отредактированно immelnikoff (02.06.2018 10:30:15)

Неактивен

 

#2 03.06.2018 23:31:07

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5516

Re: Вопрос по кодировкам: character_set_client и character_set_connection

1. да

2. нет, сразу переведет cp1251 в koi8r

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

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.

Неактивен

 

Board footer

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