[Err] 1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for

本文介绍了一种解决MySQL中不同表之间字符集不一致导致的查询错误的方法。通过使用CONVERT函数调整字符集,确保了跨表查询时字符串比较的一致性和准确性。

1、MySQL进行字符串比较时发生错误

select
				a.EVENT,	
				a.TOUSERNAME,	
				a.FROMUSERNAME,	
				a.FROMNICKNAME,	
				a.EVENTKEY,	
				a.MSGTYPE,	
				a.CONTENT,	
				a.INSERTTIME,	
				b.HEADIMGURL	
		from 
				record a   
		left join  
			wxuser b  
		on a.FROMUSERNAME=b.OPENID 

错误

[Err] 1267 - Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='

原因:

表record 与表wxuser 编码格式不一样


2、改成


select
				a.EVENT,	
				a.TOUSERNAME,	
				a.FROMUSERNAME,	
				a.FROMNICKNAME,	
				a.EVENTKEY,	
				a.MSGTYPE,	
				a.CONTENT,	
				a.INSERTTIME,	
				b.HEADIMGURL	
				
		from 
				record a  
		left join 
			wxuser b 
		on 
		b.OPENID = CONVERT(a.FROMUSERNAME USING utf8) COLLATE utf8_unicode_ci




6、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值