【问题标题】:error Illegal mix of collations for concat错误 concat 的排序规则的非法混合
【发布时间】:2015-01-29 07:44:22
【问题描述】:

我正在尝试执行数据库

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”的排序规则的非法混合 谁能帮帮我?

【问题讨论】:

  • 您必须分析您的 sql 请求中提到的所有表及其字段,尤其是 CONCAT 表达式。某些字段的 COLLATION 属性必须存在差异(例如不同的字符集或区分大小写的规则)

标签: mysql concat


【解决方案1】:

我最近遇到了类似的问题。在你连接之前做一个

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

对于您要连接的所有列。

【讨论】:

  • 你的意思是我必须将 MyISAM 更改为 utf8 ??
猜你喜欢
  • 2011-12-06
  • 2010-11-03
  • 2017-10-19
  • 1970-01-01
  • 2014-09-05
  • 2013-08-01
  • 1970-01-01
  • 2010-11-17
相关资源
最近更新 更多