2012-06-06 2 views
1

У меня есть мнение "name_all" в MySQL, который структураMySql сверка изменение зрения

colName  varchar(30) utf8_general_ci 

date varchar(76)  utf8_general_ci 

name varchar(43) latin1_swedish_ci 

, когда я пытаюсь запустить запрос:

SELECT CONCAT(`colname`,' of Mr. ',`name`,' Expire on ',`date`) FROM name_all 

это дает сообщение об ошибке:

#1271 - Illegal mix of collations for operation 'concat' 

"colName" is basically a Column Name which is used as a row in this View 

"date" is mysql Date which is converted in this format '%a %D %b, %Y' 

"name" is concatenation of firstname, middlename, lastname from a table 

Как решить эту проблему и в чем моя ошибка?

когда я запускаю запрос SHOW ПЕРЕМЕННЫХ LIKE «сортировка%» Результата является

Variable_name   Value 
    collation_connection utf8_general_ci 
    collation_database latin1_swedish_ci 
    collation_server  latin1_swedish_ci 

ответ

1

Даже если вы говорите, «все таблицы и колонки в latin1_swedish_ci», то, что омнате.Вы Размещенный:

colName varchar(30) utf8_general_ci 

date varchar(76) utf8_general_ci 

name varchar(43) latin1_swedish_ci 

Изменение colName и сопоставление даты на latin1_swedish_ci, вероятно, поможет вам решить вашу проблему.

+0

но как я могу сделать это в «представлениях» – Shujaatali

+0

Хороший вопрос. Вы должны сделать это в таблице своей базы данных, представление просто похоже на просмотр таблицы данных с определенным набором правил [так же, как имя подразумевает «VIEW»]. Таким образом, представление не меняет какой-либо основной дизайн вашей схемы. Попробуйте изменить collotion на уровне базы данных. – Shiham

+0

спасибо ....... разрешить его вручную сменить базу данных и таблицу сортировки – Shujaatali

0

Для всех, кто сталкивается с этой нитью, сортировка в столбце вида определяется столбцами базовой таблицы, ЕСЛИ столбец является жестко запрограммированной строкой, определенной в представлении (например, CASE, определяющим некоторое строковое значение). В этих случаях сопоставление определяется набором символов, указанным при создании представления. Во время определения определения экспортные клиенты, такие как HeidiSQL, могут включать исполняемые комментарии, которые устанавливают набор символов в значение по умолчанию, отличное от вашего предполагаемого набора. Когда вы повторно запустите определение, которое вы сейчас сохранили, ваши несоответствующие наборы. Запустите «показать полные столбцы из viewName», чтобы проверить.