Как объединить два текстовых столбца в один?

Есть две таблицы, состоящие из столбцов:
id, sDate, title
id,sDate,message
имеющие одинаковые типы данных:
Int, timestamp, text
Если объединять по id или sDate, используя запрос
SELECT sDate as t FROM `tb1`
UNION ALL SELECT sDate as t FROM `tb2`
то все проходит нормально
Если объединять по title,message, используя запрос
SELECT title as t FROM `tb1`
UNION ALL SELECT message as t FROM `tb2`
то выскакивает ошибка "#1271 - Illegal mix of collations for operation 'UNION'"

Теперь вопрос - как все-таки объединить два текстовых столбца из разных таблиц в один?
  • Вопрос задан
  • 576 просмотров
Решения вопроса 1
mahoho
@mahoho
Full stack certified PHP developer.
Если не хотите (или нет возможности) менять collation столбцов, приводите их в запросе:
SELECT
		cast(title as VARCHAR(200) CHARACTER SET utf8) COLLATE utf8_general_ci as t
	FROM `tb1`
	UNION ALL
	SELECT cast(message as varchar(200) CHARACTER SET utf8) COLLATE utf8_general_ci as t 
	FROM `tb2`
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maximw
@maximw
MySQL же говорит в чем ошибка.
У столбцов title и message одинаковые collations?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы