Mysql charset для запроса возможно?

Допустим, у меня есть две таблицы, закодированные разными кодировками: таблица A — utf8, таблица B — latin1.
Чтобы запросить данные в таблице A, я бы переключил кодировку соединения на utf8; и к латинице 1 для таблицы B.
Итак, сценарий таков:

set names utf8;
select * from A where ...;
set names latin1;
select * from B where ...;

Мой первый вопрос заключается в том, что в любом случае следует избегать использования «set names …» все время? На самом деле мои две таблицы находятся в двух отдельных базах данных (но я упростил ситуацию для одной базы данных, как указано выше), и неудобно преобразовывать кодировку одной базы данных в другую. Есть что-нибудь вроде:

select ... with connection charset utf8;

Спасибо!

-1

Решение

Нет, но я не понимаю, почему вы хотите это сделать: вы, кажется, рассматриваете неправильную кодировку (на стороне сервера, а не на стороне клиента). Ваши столбцы в MySQL могут иметь разные кодировки, это (на самом деле) не проблема, если вы укажете кодировку, которую использует ваш клиент (здесь PHP) (через SET NAMESили, лучше, его эквивалент PHP); MySQL сделает необходимые преобразования между клиентами и данными, которые он хранит.

=> Единственное «SET NAMES», которое вам нужно сделать, это объявить кодировку, которую использует ваше приложение.

1

Другие решения

Других решений пока нет …