求助:这个Java多条件查询为啥不对

Misgatel 2020-07-19 03:30:44

这个只能查一个条件,两个条件就不可以
...全文
8011 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
简单的小昵称 2020-07-21
  • 打赏
  • 举报
回复
在外面用where 1=1 条件里面的where都改成and,这个错误你可以查看日志看sql语句就能找到错误所在的
冰思雨 2020-07-20
  • 打赏
  • 举报
回复
一个SQL查询语句里面,只能有一个Where语句,除非你有子查询。 楼主的这个查询语句里面,每个查询条件都使用了Where语句,这个是不对的。 应该是使用一个where语句,后面的条件,用 and (或者 or)来连接起来,表示多个条件同时(或者 其中有一个)满足才行。 1楼是正解
  • 打赏
  • 举报
回复
换and,没where ... where这语法
hufanghui624489807 2020-07-20
  • 打赏
  • 举报
回复
你后面的sql where 又加了一个 where 可以才怪呢。。。 一般 where 1=1 不用where true 因为true 有兼容性 后面的sql 直接 and 条件 就行了
胖到没有朋友 2020-07-20
  • 打赏
  • 举报
回复
引用 楼主 Misgatel 的回复:
这个只能查一个条件,两个条件就不可以
我看你这个代码,第三个条件其实就是第一个和第二个条件的结合,也就说,这三个条件只会走一个,但是当你两个条件都满足的时候。前两个if判断也都是true,都会在后面拼接,对于这个改动,你把三个if改成if-else-if结构是改动最少的代码。这样他三个就只会走,但是我建议你把第三个条件放最上面,因为假如两个条件都满足的话,单个判断也是正确的,进入之后就不会再走其他的else了,这样就会导致有一个条件失效,所以先判断是否同时满足两个条件,不满的时候再去判断单个条件。
luj_1768 2020-07-20
  • 打赏
  • 举报
回复
代码基本正确,前贴教的是对的:在一个查询语句里、只能使用一个where,多个查询条件的联合查询可以使用and和or这样的逻辑语义连接。前面的if()语句没有问题。
cjr_999 2020-07-20
  • 打赏
  • 举报
回复
这些比较繁的语句拼起来后不妨都先列印一下检查拼接有无错。
YangjulongTrue 2020-07-19
  • 打赏
  • 举报
回复
你后面的sql where 又加了一个 where 可以才怪呢。。。
一般 where 1=1 不用where true 因为true 有兼容性
后面的sql 直接 and 条件 就行了

String sql="select * from user where 1=1";
if(是否为空)
sql+=" and 条件1";
if(。。。)
sql+=" and 条件n"...

58,452

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧