当前位置:首页 > SQL > 正文内容

mysql字段类型不一致导致的索引问题记录

高老师3年前 (2021-12-27)SQL3092

项目中出现SQL慢查询导致影响用户使用,原因是两个索引字段的类型不同导致无法使用索引,使用CONCAT转换为字符串即可解决

原始SQL:

SELECT
*
FROM
hqew_order_goods og
LEFT JOIN hqew_remove_list ri ON ri.order_rec_id = og.rec_id
AND real_removal_numbers > 8888
LEFT JOIN hqew_all_stock sl ON sl.removal_item_id = ri.id
AND sl.stock_log_type = 88
WHERE
( og.order_id = '888888' )
AND ( og.removal_numbers > 0 )

SQL问题点:(字段类型不同)

ri.order_rec_id = og.rec_id

修正SQL:

SELECT
*
FROM
hqew_order_goods og
LEFT JOIN hqew_remove_list ri ON ri.order_rec_id = CONCAT( og.rec_id, '' )
AND real_removal_numbers > 8888
LEFT JOIN hqew_all_stock sl ON sl.removal_item_id = ri.id
AND sl.stock_log_type = 88
WHERE
( og.order_id = '888888' )
AND ( og.removal_numbers > 0 )

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/360.html

分享给朋友:

“mysql字段类型不一致导致的索引问题记录” 的相关文章

mysql 中文占几个字节,mysql varchar 字节数

mysql 中文占几个字节,mysql varchar 字节数

我们要明白Mysql字段的长度能存多少东西,首先需要明白Mysql是计算字节长度,还是计算字符长度。在mysql4.x的版本长度代表的是字节长度.例如在mysql4.x的版本中varchar(10)能储存的中英文长度如下:(1).采用ISO8859-1编码方式时,一个中/英文都只占一个字节;(2)....

Left join,​Right join,​Inner join的区别实例讲解

Left join,​Right join,​Inner join的区别实例讲解

Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表...

主键primary key是否必须和auto_increment 一起出现

主键primary key是否必须和auto_increment 一起出现

    一般情况下,绝大部分,我们的主键是数字,1 2 3 4...所以我们才让它递增.这并不意味着,他们两个必须要绑定在一起使用.例如我还想将用户表的email字段设置为主键,但是并没有必要为其设置自增。    因此可...

mysql没有快捷方式,mysql快捷方式,mysql启动快捷方式

mysql没有快捷方式,mysql快捷方式,mysql启动快捷方式

有很多集成环境安装完成之后是没有快捷方式的,例如西部数码的网站管理助手4.0,、 更或者是护卫神PHP套件都是一样的。安装完成最多给你安装一个PhPmyadmin让你管理Mysql,但是对于经常使用命令行的我们来说是非常不方面的,而且还必须安装PhPmyadmin来管理。下面就让我们自己手...

mysql触发器,mysql触发器语法,mysql创建触发器

mysql触发器,mysql触发器语法,mysql创建触发器

    触发器是一种特殊的事务,可以监听到Mysql的(insert/update/delete)的操作并触发相应的(insert/update/delete)操作.    触发器的创建主要有4个要素:(1).监听地点(...

 mysql count 性能优化,mysql count(*)优化

mysql count 性能优化,mysql count(*)优化

1.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了!测试:user表中4000w数据(1).SELECT  count(*)   from user;   用时0.00s (2).SELECT...