MySQL查询语句

模糊查询

select * from tablename where fieldname like '&&'

正常SQL语句是这样写的,如果换成预处理语句(preparestatement),即使用JDBC的方法,使用占位符?会更好

String sql = "select * from tablename where fieldname like ?";
...
statement.setString(1, name==null?"%%":"%"+name+"%");

注意:本来正常SQL语句中,like 后面是要跟一个字符串的,要用“”或者‘’括起来,表明是字符串,而在预处理语句中,因为使用serString来设置占位符时,就已经说明值为字符串,所以预处理语句sql的占位符就不用括起来了。

而判断name是否为null是因为如果name的值是通过getAttribute获取表单信息得来的话,就有可能发生用户直接访问页面,没有进行表单提交操作的情况,此时name的值就为null,而如果是进行表单提交,就算该栏中没有填写信息,name的值也为空串“”,不会是null。所以这里主要是考虑到提交表单来获取值的情况。

日期查询

String sql = "select createTime"
	+ ",updateTime from tablename where datediff(now(),createTime)<=2 order by "
	+ " createTime desc limit 2";

运用了datediff函数,通过now()的值跟createTime的值相减得到两者之差,数值只是day单位,不是minute单位。

而limit 2其实不是用来分页,而是选取数据中前两位的值,因此当limit跟order by配合使用就能产生 选取前几位 的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值