解决mysql 不同编码查询

2、在代码上对传入的关键字进行CONVERT编码转换

如上面的例子的sql

SELECT id,mail_2011_06_22.service_code,cur_time,concat('mail_2011_06_22') as tabName,'mail' as service FROM mail_2011_06_22 WHERE 1=1 

AND

 ( state_type=3 OR ( state_type=0 AND flag !=0) ) AND (service_type='0003' OR service_type='0004' OR service_type='0005' OR (service_type='0006' AND direction='0' ) ) AND 

( state_type=3 OR ( state_type=0 AND flag !=0) ) 

AND ( CONCAT_WS('',mail_2011_06_22.host,mail_2011_06_22.account,mail_2011_06_22.send,mail_2011_06_22.recv,mail_2011_06_22.cc,mail_2011_06_22.bcc ,mail_2011_06_22.title, mail_2011_06_22.text,mail_2011_06_22.raw_info,mail_2011_06_22.accessory) like CONVERT('%资源共享%' USING GBK) 

OR CONCAT_WS('',mail_2011_06_22.host,mail_2011_06_22.account,mail_2011_06_22.send,mail_2011_06_22.recv,mail_2011_06_22.cc,mail_2011_06_22.bcc ,mail_2011_06_22.title, mail_2011_06_22.text,mail_2011_06_22.raw_info,mail_2011_06_22.accessory) like CONVERT('%资源共享%' USING UTF8) 

OR CONCAT_WS('',mail_2011_06_22.host,mail_2011_06_22.account,mail_2011_06_22.send,mail_2011_06_22.recv,mail_2011_06_22.cc,mail_2011_06_22.bcc ,mail_2011_06_22.title, mail_2011_06_22.text,mail_2011_06_22.raw_info,mail_2011_06_22.accessory) like CONVERT('%资源共享%' USING BIG5))

上面的sql实现了对gbk, utf8, big5不统一查询。

这种方式的优点:用户统一查询,省掉了不必要的用户操作。

缺点:增加编码方式的修改会比较麻烦。查询效率没有那么高(究竟效率怎样,没有去测试)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值