【问题标题】:Illegal mix of collations for operation 'concat' from mysql来自 mysql 的操作“concat”的排序规则的非法混合
【发布时间】:2015-10-19 11:19:26
【问题描述】:

来自 mysql 的操作“concat”的排序规则的非法组合。

select (select case when e._type='Call Log' then concat(d.firstname,' ',d.lastname,' ','Scheduled a Call On',' ',
e.logdate)
 when e._type='Meeting' then concat(d.firstname,' ',d.lastname,' ','Scheduled a Meeting  On', ' ',
 e.logdate) when e._type='Mail Log' then concat(d.firstname,' ',d.lastname,' ','Scheduled Mail On',' ',
 e.logdate) end  from schedulelog e where e.log_gid=a.log_gid) from log a
inner join employee b on a.log_by=b.user_gid
 inner join user d on a.log_by=d.user_gid;

这是我的创建表查询

 `CREATE TABLE  `schedulelog` ( `log_gid` varchar(64) NOT NULL,  `bank_gid` varchar(64) default NULL,`logdate` date default NULL,      `_type` varchar(32) default NULL,`log_gid` varchar(64) default NULL,
  `status_flag` varchar(1) default NULL, `schedule_time` varchar(32) default NULL,`followup_type` varchar(64) default NULL,`product_gid` varchar(64) default NULL, `assign_to` varchar(64) default NULL,
  PRIMARY KEY  (`log_gid`), KEY `Index_2` (`bank_gid`),    
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AVG_ROW_LENGTH=2730;`

【问题讨论】:

  • 请显示您的表的创建语句

标签: mysql


【解决方案1】:

请使用 GROUP_CONCAT 而不是 concat

我想它会解决你的问题

【讨论】:

  • 不,不会,因为OP不使用group by
【解决方案2】:

在您的情况下,您尝试在非字符串类型(日期/时间/整数)字段上使用字符串类型(varchar/text)集合,您会收到此错误。您需要做的是查看在您的条件中使用这些 noneString 字段的位置并像这样放置它们。

WHERE (CONVERT(`Here coms the name of the column` USING utf8)

【讨论】:

    猜你喜欢
    • 2011-12-06
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 2016-12-08
    • 2015-01-29
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多