【 TiDB 使用环境】生产环境
【 TiDB 版本】Release Version: v7.2.0
【遇到的问题:问题现象及影响】
查询如下
SELECT teacher_id,id_number FROM tb_teacher_user WHERE (teacher_id IN (125));
SELECT teacher_id,id_number FROM tb_teacher_user WHERE teacher_id IN (125);
结果
当我交换teacher_id,id_number 顺序也会正确,第一次修改sql也是正确的,之后就是列名字错误,数据是对的。
表结构如下
teacher_id
bigint(20) NOT NULL AUTO_INCREMENT COMMENT ‘教师id’,
teacher_name
varchar(100) NOT NULL COMMENT ‘教师姓名’,
id_number
varchar(30) DEFAULT ‘’ COMMENT ‘身份证号’,
phone
varchar(50) DEFAULT NULL COMMENT ‘电话号’,
password
varchar(100) DEFAULT NULL COMMENT ‘登录密码’,
province_name
varchar(50) DEFAULT NULL COMMENT ‘省份名称’,
province_code
varchar(20) DEFAULT NULL COMMENT ‘省份code’,
city_name
varchar(50) DEFAULT NULL COMMENT ‘城市名称’,
city_code
varchar(20) DEFAULT NULL COMMENT ‘城市code’,
county_name
varchar(50) DEFAULT NULL COMMENT ‘区县名称’,
county_code
varchar(20) DEFAULT NULL COMMENT ‘区县code’,
school_id
bigint(11) DEFAULT NULL COMMENT ‘学校id’,
school_name
varchar(50) DEFAULT NULL COMMENT ‘学校名称’,
last_login_time
datetime DEFAULT NULL COMMENT ‘最近登录时间’,
login_num
int(50) DEFAULT ‘0’ COMMENT ‘账号登录次数’,
role_name
varchar(100) DEFAULT NULL COMMENT ‘角色名称’,
credentials_non_expired
tinyint(1) DEFAULT ‘0’ COMMENT ‘密码是否过期’,
enabled
tinyint(1) DEFAULT ‘1’ COMMENT ‘可用状态【1=正常,0禁用】’,
account_non_locked
tinyint(1) DEFAULT ‘1’ COMMENT ‘账号是否锁定【0=锁定,1=正常】’,
account_non_expired
tinyint(1) DEFAULT ‘1’ COMMENT ‘是否过期【0=过期,1=未过期】’,
user_source_type
int(1) DEFAULT NULL COMMENT ‘用户来源’,
create_time
datetime DEFAULT NULL COMMENT ‘创建时间’,
account_v
tinyint(1) DEFAULT ‘1’ COMMENT ‘账号类型【0虚拟、1真实】’,
补充一点,当出现这个bug时候强制指定别名也无效
添加完整的复现,以及使用命令行
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for tb_test
-- ----------------------------
DROP TABLE IF EXISTS `tb_test`;
CREATE TABLE `tb_test` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
`id_number` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`) /*T![clustered_index] CLUSTERED */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
-- ----------------------------
-- Records of tb_test
-- ----------------------------
BEGIN;
INSERT INTO `tb_test` (`id`, `name`, `id_number`) VALUES (1, 'test1', '12716761726');
INSERT INTO `tb_test` (`id`, `name`, `id_number`) VALUES (2, 'test2', '125616261172');
COMMIT;
SET FOREIGN_KEY_CHECKS = 1;
【看到的非预期行为】
列名返回错误,以及别名指定也是错误的
【期望看到的行为】
正确的select的列名字