Устранение неполадок «Недопустимое сочетание параметров сортировки» в MySQL - PullRequest
181 голосов
/ 12 июня 2010

При попытке выполнить выборку с помощью хранимой процедуры в MySQL выдается следующее сообщение:

Недопустимое сочетание параметров сортировки (latin1_general_cs, IMPLICIT) и (latin1_general_ci, IMPLICIT) для операции '='

Есть идеи о том, что здесь может пойти не так?

Параметры сортировки таблицы: latin1_general_ci, а столбца в предложении where - latin1_general_cs. * 1011.*

Ответы [ 13 ]

0 голосов
/ 08 сентября 2017

Другим источником проблемы с сопоставлениями является mysql.proc таблица. Проверьте подборки ваших процедур хранения и функций:

SELECT
  p.db, p.db_collation, p.type, COUNT(*) cnt
FROM mysql.proc p
GROUP BY p.db, p.db_collation, p.type;

Также обратите внимание на столбцы mysql.proc.collation_connection и mysql.proc.character_set_client.

0 голосов
/ 09 июля 2014

Возможное решение - преобразовать всю базу данных в UTF8 (см. Также вопрос ).

0 голосов
/ 08 декабря 2012

Я использовал ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci;, но не работал.

В этом запросе:

Select * from table1, table2 where table1.field = date_format(table2.field,'%H');

Эта работа для меня:

Select * from table1, table2 where concat(table1.field) = date_format(table2.field,'%H');

Да, только concat.

...