当前位置:首页 > 数据库教程 >

Cannot use ref access on index 'key' due to type or collation conversion on field 'keyword'

发布时间:2019-06-17 17:00:11 作者:佚名 阅读:(12)

在使用mysql数据库查询的时候,发现速度不仅慢而且还报了Warning,提示 Cannot use ref access on index 'key' due to type or collation conversion on field 'keyword',接下来吾爱编程为大家介绍一下,有需要的小伙伴可以参考一下:

select ID,pid,title,url_link,addtime,typeID,img_cover,`desc`,updatetime,content,keyword,hit,tujian_img,zhuanti_class_two,zhuanti_class_three,tujian_class_two,tujian_class_three,tujian from soft_news where isPublish=1 and timing=0 and pid= 373 and keyword=5938 and ID!=4452 order by updatetime desc limit 0,6

上述sql语句中,keyword字段是varchar(100) 类型且列上有keyword索引,从两种查询方式和执行计划,以及执行完Mysql的warning中我们都能看出,在 MySQL 中,字符串和数字做比较的话,是将字符串转换成数字。所以上述语句执行时,数据库相当于是先对keyword字段做了运算(隐式转换),然后再和对应的相比,这也和上面条件字段做函数操作不走索引的快速定位功能相呼应。

接着把keyword字段字段类型改成int之后,执行就没有警告的提示了

欢迎分享转载→ Cannot use ref access on index 'key' due to type or collation conversion on field 'keyword'

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们