sql优化之隐式转换
不想排版,各位凑合一下把。
表结构:
CREATE TABLE `bill_housekeeper_labels` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` varchar(100) NOT NULL DEFAULT '' COMMENT '身份证',
`type` varchar(5) NOT NULL DEFAULT '0' COMMENT '指标类型',
`add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间',
`mark` tinyint(4) NOT NULL DEFAULT '0' COMMENT '标志位 0:有效 1:无效',
`responese` text NOT NULL COMMENT '结果转json进行缓存',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`) USING BTREE,
KEY `query` (`user_id`,`type`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=135 DEFAULT CHARSET=utf8 COMMENT='张三个李四';
联合查询(join)的时候,注意 on条件
SELECT
*
FROM
a
LEFT JOIN b ON a.mobile = b.mobile
解释:两表的 mobile 属性要一致,否者隐式转换会复现。