where中尽量不要去对列进行转换,这样会用不到该列的索引,正常的做法是在比较符的右边处理,比如下面这句↓ select * from tb where val/100>1 对应的改法是↓ select * from tb where val>100 说这么多,不知道你是否知道你那个怎么改了没。
`select cid,tid,name,YEAR(year) as year FROM class WHERE year >= concat(#{year},'-01-01') and year <= concat(#{year},'-12-31') ` 这样也可以取到#{year}这年的所有数据,又可以用到year列的索引
where中尽量不要去对列进行转换,这样会用不到该列的索引,正常的做法是在比较符的右边处理,比如下面这句↓
select * from tb where val/100>1对应的改法是↓
select * from tb where val>100说这么多,不知道你是否知道你那个怎么改了没。
`select cid,tid,name,YEAR(year) as year
FROM class
WHERE year >= concat(#{year},'-01-01') and year <= concat(#{year},'-12-31')
`
这样也可以取到#{year}这年的所有数据,又可以用到year列的索引
最简单的是用
mysql的的year函数,或者使用mybatis的拦截器自己转换。