sql语句问题 select * from a where b = '%111%',这个语句有问题吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好明显的错select * from a where b like '%111%' 模糊查询select * from a where b = '111' 精确查询 语法是没有错的,不过想模糊查询要用like 如果你想查询类似 a111b abc111d这样的记录应该是select * from a where b like '%111%' 语句本身没有语法错误,就是找出b="'%111%"的值当然,lz要是模糊查询的话就select * from a where b like '%111%' 查出含有"1111" 的值 我现在有一组查询,有的要模糊查询,有的要精确查询,sql语句中查询条件用占位符代替,在赋值时我不想区别哪些是精确,哪些是模糊的,所以赋值时都加了"%%",这个以前没有用过,不知道会不会出问题,现在试是没有问题的,但是这样用总感觉不爽,怕以后指不定什么时候给来个问题 LZ问题描述不细啊 你是要查询A表中%111% 还是要做模糊查询啊 你写的这句是精确查询啊,是在a表中查询所有b='%111%'的数据 不区分精确和模糊,那就统一模糊呗。不用加占位符。select * from a where b like '%111%' select * from a where b like '%111%';模糊查询但若是就想查值为’%111%‘的记录,那就用等号了 for (int i = 0; i < paramsValue.size(); i++) { if (paramsValue.get(i) instanceof String) stmt.setString(i + 1, "%" + (String)paramsValue.get(i) + "%"); else if (paramsValue.get(i) instanceof Integer) stmt.setInt(i + 1, ((Integer)paramsValue.get(i)).intValue()); else if (paramsValue.get(i) instanceof Double) stmt.setBigDecimal(i + 1, BigDecimal.valueOf(((Double)paramsValue.get(i)).doubleValue())); }我是在给占位符赋值时不能区别哪些是模糊查询,哪些是精确的,所有都加了“%%” select * from a where b = '%111%'如果b是int类型,此语法错误。否则语法没有问题只是查不到你想要的结果。 select * from a where b like '%111%' select * from a where b like '%111%'; 如果是String类型,没有错误,但是不建议这样使用 servlet 打开网页报错500 JSP页面跳转 spring dao 配置 如何把数据库读取的文件保存到指定目录下 struts2 iterator标签问题 怎么取得相对于根目录的子目录名称? 关于单选按钮 vector如何等间距取值 怎么用java读取服务器一个文件夹里所有文件的文件名,在JSP页面形成一个目录列表,通过点击列表实现下载 请教! 请教:关于spring3 在struts2 action中做事务管理 inser into SQL注入时,这样的语句可以注入吗?
select * from a where b like '%111%' 模糊查询
select * from a where b = '111' 精确查询
select * from a where b like '%111%'
当然,lz要是模糊查询的话就
select * from a where b like '%111%' 查出含有"1111" 的值
你是要查询A表中%111% 还是要做模糊查询啊 你写的这句是精确查询啊,是在a表中查询所有b='%111%'的数据
不用加占位符。
select * from a where b like '%111%'
但若是就想查值为’%111%‘的记录,那就用等号了
if (paramsValue.get(i) instanceof String)
stmt.setString(i + 1, "%" + (String)paramsValue.get(i) + "%");
else if (paramsValue.get(i) instanceof Integer)
stmt.setInt(i + 1, ((Integer)paramsValue.get(i)).intValue());
else if (paramsValue.get(i) instanceof Double)
stmt.setBigDecimal(i + 1, BigDecimal.valueOf(((Double)paramsValue.get(i)).doubleValue()));
}
我是在给占位符赋值时不能区别哪些是模糊查询,哪些是精确的,所有都加了“%%”
如果b是int类型,此语法错误。
否则语法没有问题只是查不到你想要的结果。