SQL 多条件查询问题

来源:百度知道 编辑:UC知道 时间:2024/05/08 21:23:22
我想看看name是11 user是22的记录里有没有modname或addname是zhang的记录。
为什么每记都不管modname和addname里有没有zhang的记录,都会打印信息,但如果把后边的 or addname='zhang'去掉就会正常。。

不知道我后边的条件语句是不是写的太多了?应该如何写能好些?

String sql="SELECT * FROM table1 WHERE name='11' and user='22' and modname like '%zhang%' or addname='zhang'";
rs=db.......
if(rs.next()){
System.out.println("有此记录!");

}

少扩号
String sql="SELECT * FROM table1 WHERE name='11' and user='22' and (modname like '%zhang%' or addname='zhang')";

没有括号,你原语句的意思是将几个and 语句和or语句并列起来,也就是查找用(name='11' 和user='22'和 modname like '%zhang%')或者。。。。。
改成如下语句就好了
String sql="SELECT * FROM table1 WHERE name='11' and user='22' and (modname like '%zhang%' or addname='zhang')";

SELECT * FROM table1 WHERE name='11' and user='22' and (modname like '%zhang%' or addname='zhang')

试试看

SELECT count(*) FROM table1 WHERE name='11' and user='22' and (modname ='zhang' or addname='zhang')

看看