Задать вопрос
@dieneri

Что делать с ошибкой запроса left join guid при сопоставлении?

Делаю простой left join, сопоставляю где хранятся id в виде guid в двух полях.

SELECT * FROM `first` as t1
 LEFT JOIN `second` as t2 ON t1.id = t2.number_id


Получаю ошибку. Как можно исправить, нужно указать кодировку в запросе? Можно ли как-то преобразовать. Так понимаю, разные немного кодировки у полей.

В обоих полях хранятся guid.

Error Code: 1267. Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='	0.016 sec
  • Вопрос задан
  • 37 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
OrlovEvgenii
@OrlovEvgenii
golang developer / DevOps
Попробуй так
SELECT * FROM `first` as t1
 LEFT JOIN `second` as t2 ON t1.id COLLATE utf8_unicode_ci = t2.number_id COLLATE utf8_unicode_ci;


Но COLLATE может замедлить выполнение запроса, поскольку серверу придется преобразовывать значения перед сравнением, если это возможно - поменяй кодировку одного из столбцов
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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