菜鸟小学弟 2020-08-20 20:46 采纳率: 0%
浏览 2470

mysql查询报错了:Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

问题描述:

Error querying database. Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
The error may exist in class path resource [mapper/QuestionMethodMapper.xml]
The error may involve com.wekj.monkey.mapper.QuestionMethodMapper.selectByQuestion-Inline
The error occurred while setting parameters
SQL: select id, question, industry_ids, industry_names, method_id, method_name, flag, features, gmt_create, gmt_modified, status from question_method where question = ?
Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

sql语句:

  <select id="selectByQuestion" resultMap="BaseResultMap" parameterType="String" >
    select
    <include refid="Base_Column_List" />
    from question_method
    where question =#{question,jdbcType=VARCHAR}
  </select>

建表语句

CREATE TABLE `question_method` (
  `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `question` varchar(256) COLLATE utf8mb4_bin NOT NULL COMMENT '买家问题',
  `industry_ids` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '行业列表ID',
  `industry_names` varchar(256) COLLATE utf8mb4_bin NOT NULL COMMENT '行业列表名字',
  `method_id` bigint(11) NOT NULL COMMENT '问法ID',
  `method_name` varchar(4096) COLLATE utf8mb4_bin NOT NULL COMMENT '问法名字',
  `flag` bigint(20) DEFAULT '0' COMMENT '按位打标签',
  `features` varchar(10240) COLLATE utf8mb4_bin DEFAULT '' COMMENT '通用扩展存储',
  `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
  `status` int(11) NOT NULL DEFAULT '0' COMMENT ' 是否删除(0:否,1:是)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=521 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPACT COMMENT='问题对应问法表';

求解:不知道为什么会在生产环境上报错,本地postman请求不会报错的,传的参数是

图片说明

  • 写回答

2条回答 默认 最新

  • xefei-soft 2020-08-20 21:13
    关注
    1. 基本是库编码和表编码不一致造成,以及jdbc字符版本驱动问题,像带有表情字段存储做好做法是进行base_encode64 存储。
    评论

报告相同问题?

悬赏问题

  • ¥15 电视版的优酷可以设置电影连续播放吗?
  • ¥50 复现论文;matlab代码编写
  • ¥30 echarts 3d地图怎么实现一进来页面散点数据和卡片一起轮播
  • ¥15 数字图像的降噪滤波增强
  • ¥15 心碎了,为啥我的神经网络训练的时候第二个批次反向传播会报错呀,第一个批次都没有问题
  • ¥15 MSR2680-XS路由器频繁卡顿问题
  • ¥15 VB6可以成功读取的文件,用C#读不了
  • ¥15 如何使用micpyhon解析Modbus RTU返回指定站号的湿度值,并确保正确?
  • ¥15 C++ 句柄后台鼠标拖动如何实现
  • ¥15 有人会SIRIUS 5.8.0这个软件吗