Mysql 错误:concat的排序规则非法混合

Mysql 错误:concat的排序规则非法混合,mysql,concat,Mysql,Concat,我正在尝试执行数据库 SELECT v.id AS id, DATE_FORMAT(v.`date`, '%d %b %y') AS `date`, `getDateDiff`(v.`date`) AS `datediff`, c.`name` AS `clinic`, GROUP_CONCAT(CONCAT(an.anamnese, ', ', an.icd_name, '') SEPARATOR '|') AS anamnese_dia

我正在尝试执行数据库

SELECT v.id AS id,
       DATE_FORMAT(v.`date`, '%d %b %y') AS `date`,
       `getDateDiff`(v.`date`) AS `datediff`,
       c.`name` AS `clinic`,
       GROUP_CONCAT(CONCAT(an.anamnese, ', ', an.icd_name, '') SEPARATOR '|') AS anamnese_diagnose,
       GROUP_CONCAT(tr.name SEPARATOR '|') AS treatment,
       GROUP_CONCAT(CONCAT(pr.drug_name, '  (', format(pr.dosis1,0), ' x ', format(pr.dosis2,0), ')',' Jml: ',substring_index(pr.qty,'.',1),' ',pr.unit) SEPARATOR '|') AS prescribe,
       CONCAT_WS('/', ex.sistole, ex.diastole) AS blood_pressure,
       ex.temperature AS temperature,
       ex.pulse AS pulse,
       ex.physic_anamnese AS physic_anamnese,
       ex.respiration AS respiration,
       ex.weight AS weight,
       ex.height AS height
FROM `examinations` ex
JOIN `visits` v ON (v.id = ex.visit_id)
JOIN `ref_clinics` c ON (c.id = v.clinic_id)
JOIN `patients` p ON (p.id = v.patient_id)
LEFT JOIN anamnese_diagnoses an ON (an.visit_id = v.id)
LEFT JOIN treatments tr ON (tr.visit_id = v.id)
LEFT JOIN prescribes pr ON (pr.visit_id = v.id)
WHERE v.id <= '19499'
  AND v.patient_id=
    (SELECT patient_id
     FROM visits
     WHERE id='19499')
GROUP BY v.id
ORDER BY v.id DESC LIMIT 1
但系统称发生了数据库错误

错误号码:1271

操作“concat”的排序规则非法混合
有人能帮我吗?

我最近也遇到了类似的问题。在你做一件事之前

... CONVERT(myCol TO utf8)...

对于所有要concat的col。

必须分析sql请求中提到的所有表及其字段,尤其是concat表达式。某些字段排序属性必须有所不同,例如不同的字符集或区分大小写规则您的意思是我必须将MyISAM更改为utf8??