MySQL: Illegal mix of collations

Руслан

Новичок
MySQL: Illegal mix of collations

Вот мне не понятна одна вещь..

Делается запрос..
select * from db1.example1 union select db2.example2.name from db2.example2

выдает ошибку:
MySQL: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_bin,IMPLICIT) for operation 'UNION'

Я так понял что это из за того что кодировка таблицы после юнион не цп1251, а латин1_бин.
А как в этом случае составить запрос что бы он читал в разных базах, таблицах и колонках с разной кодировкой? И возможно ли это?
 

berkut

Новичок
+1. такое осчучение, по другим топикам, что товарисч пишет ради того, чтобы хоть что-нибудь написать
 

Руслан

Новичок
berkut
А у меня такое впечатление, что отвечаешь лишь бы что нибудь ответить. Я по крайней мере не флужу в чужих топиках. Если знаешь ответ по теме - подскажи, если не знаешь - то и нечего сюда писать.

-~{}~ 28.11.07 23:44:

*****
Ты всё знаешь.. подскажи..
 

Фанат

oncle terrible
Команда форума
Руслан
Если ты хочешь, чтобы у тебя в одной таблице был и шведский, и русский язык - тебе прямая дорога в юникод
 

Руслан

Новичок
А если в разных, или даже в разных базах? Одна например на шведском а другая на русском. Нельзя ли запросами варьировать? Это вобще возможно средствами mysql или нет? Я читал про COLATE, но как отработать с юнион так и не понял..
 

Фанат

oncle terrible
Команда форума
при чем здесь базы?
таблица тебя, результирующая - ОДНА!
поле - ОДНО.
как ты одному полю сделаешь несколько кодировок, умник?

-~{}~ 28.11.07 23:59:

в юникоде есть и шведский, и русский.
поэтому, ещё раз повторяю.
если тебе нужно два языка, то тебе нужен юникод.
понятно?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
*****
Версию я спросил из-за того, что данный тестовый код у меня работает.
mysql> SELECT VERSION();
+---------------------+
| VERSION() |
+---------------------+
| 5.0.45-community-nt |
+---------------------+
1 row in set (0.00 sec)

mysql> SHOW CREATE TABLE t1;
+-------+-------------------------------
| Table | Create Table
+-------+-------------------------------
| t1 | CREATE TABLE `t1` (
`test1` varchar(255) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 |
+-------+-------------------------------
1 row in set (0.00 sec)

mysql> SHOW CREATE TABLE t2;
+-------+------------------------------
| Table | Create Table
+-------+------------------------------
| t2 | CREATE TABLE `t2` (
`test2` varchar(255) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+------------------------------
1 row in set (0.00 sec)


mysql> SELECT * FROM t1;
+-------+
| test1 |
+-------+
| р |
| с |
| ё |
+-------+
3 rows in set (0.00 sec)


mysql> SELECT * FROM t2;
+-------+
| test2 |
+-------+
| рр |
| сс |
| ёё |
+-------+
3 rows in set (0.00 sec)


mysql> SELECT * FROM t1 UNION SELECT * FROM t2;
+-------+
| test1 |
+-------+
| р |
| с |
| ё |
| рр |
| сс |
| ёё |
+-------+
6 rows in set (0.00 sec)

berkut
+1. такое осчучение, по другим топикам, что товарисч пишет ради того, чтобы хоть что-нибудь написать
Вашы ощущения высказывайте в ЛС. Договорились?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
упс.
Извиняюсь.
 

Фанат

oncle terrible
Команда форума
утф8 и 1251 - совместимые кодировки. у них не будет иллегала - любой символ из 1251 есть в утф8, их можно перекодировать друг в друга.
а латин1 с 1251 соединить невозможно.
в первой на месте русских букв - умляуты.

-~{}~ 29.11.07 00:13:

Руслан
сделай к каждой базе запрос SET NAMES ut8
и попробуй выполнить снва.
если получится, то вт тебе твой мультиязычнй текст
 
Сверху