Bug 反馈
清晰准确地描述您发现的问题,提供任何可能复现问题的步骤有助于研发同学及时处理问题
【 Bug 的影响】
查询报错,ERROR 1105 (HY000): Can’t find column Column#5 in schema Column: [test_db1.test_ifnull.id,test_db1.test_ifnull.create_at,test_db1.test_ifnull_2.id,test_db1.test_ifnull_2.update_at] Unique key: []
【可能的问题复现步骤】
CREATE TABLE test_ifnull
(
id
bigint(18) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
create_at
datetime DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
CREATE TABLE test_ifnull_2
(
id
bigint(18) unsigned NOT NULL AUTO_INCREMENT COMMENT ‘主键’,
update_at
datetime DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
mysql> select * from test_ifnull;
±—±--------------------+
| id | create_at |
±—±--------------------+
| 1 | 2022-02-06 00:03:35 |
| 2 | 2022-02-07 00:03:35 |
±—±--------------------+
mysql> select * from test_ifnull_2;
±—±--------------------+
| id | update_at |
±—±--------------------+
| 1 | 2021-02-06 00:03:35 |
| 3 | 2021-02-07 00:03:35 |
±—±--------------------+
2 rows in set (0.37 sec)
将上述数据插入到对应的表后进行查询
select * from( select m2.id,m2.create_at,m3.update_at,ifnull(m3.update_at
,m2.create_at) abc from test_ifnull m2 left join test_ifnull_2 m3 on m3.id=m2.id) a where a.abc >=‘2022-02-07 00:00:00’;
可以规避的查询办法有:
1.
select * from( select m2.id,m2.create_at,m3.update_at,ifnull(m3.update_at
,m2.create_at) abc from test_ifnull m2 left join test_ifnull_2 m3 on m3.id=m2.id) a where ifnull(a.update_at
,a.create_at) >=‘2022-02-07 00:00:00’;
select * from( select m2.id,m2.create_at,m3.update_at,coalesce(m3.update_at
,m2.create_at) abc from test_ifnull m2 left join test_ifnull_2 m3 on m3.id=m2.id) a where a.abc >=‘2022-02-07 00:00:00’;
【看到的非预期行为】
报错:ERROR 1105 (HY000): Can’t find column Column#5 in schema Column: [test_db1.test_ifnull.id,test_db1.test_ifnull.create_at,test_db1.test_ifnull_2.id,test_db1.test_ifnull_2.update_at] Unique key: []
【期望看到的行为】
正常查询出结果
【相关组件及具体版本】
4.0.14
【其他背景信息或者截图】
如集群拓扑,系统和内核版本,应用 app 信息等;如果问题跟 SQL 有关,请提供 SQL 语句和相关表的 Schema 信息;如果节点日志存在关键报错,请提供相关节点的日志内容或文件;如果一些业务敏感信息不便提供,请留下联系方式,我们与您私下沟通。