中国开发网: 论坛: 程序员情感CBD: 贴子 292016
变废为宝
我感觉这不是SQL功力的问题
首先分析你的需求,你现在是想取出
“data表里面2005年有数据但2006年没数据的公司”
那很自然就想到 WHERE YEAR LIKE '%2005%' AND YEAR NOT LIKE '%2006%',
然后发现这样的条件,因为是用的LIKE,所以无论有没有索引,都是会引发全表扫描的,
那么就应该考虑是否需要将4位年份单独拿出来做一个字段,这样就不需要用LIKE,索引也可以用上了,当然这要根据业务需求和数据来分析了

你这样写,我感觉是先写了查2005年的,后来加上的排除2006的需求,结果就导致了两次全表扫描,2000条记录也够你受的
“烧鹅”要火,赶紧的改

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录