爱学Java的虹夏同学 2022-07-27 00:01 采纳率: 100%
浏览 40
已结题

Mysql 查询语句中where字段= "" 作用是什么 ?如何实现多条件查询

问题遇到的现象和发生背景

Mysql

问题相关代码,请勿粘贴截图

比如说表A存放许多查询图书的条件,表B存放图书馆全部书的信息,根据条件查询书的id,因为前端是图书馆管理系统,多条件查询,同时部分查询条件可以为空
select bid from a,b where( b.bname in (a.bname) or b.bname = "" ) and
(b.bauthor in (a.author) or b.bauthor = '''' )
第一个问题 b.bname = "" 作用是什么 ?

运行结果及报错内容

img

img

img


第二个问题,为什么这条查询语句没有实现 多条件查询,部分查询条件可以为空?
select bid from book a ,querybook b where ( b.bname in (a.bname) or b.bname = "" ) and
(b.bauthor in (a.bauthor) or b.bauthor = "" ) and
(b.barea in (a.barea) or b.barea = "" )

  • 写回答

3条回答 默认 最新

  • bekote 2022-07-27 09:43
    关注

    select * from a,b获取连接表如下

    img

    所以对于 where条件 ( b.bname in (a.bname) or b.bname = "" ) and
    (b.bauthor in (a.bauthor) or b.bauthor = '''' )
    就是筛选连接表记录 (b.bname等于a.bname或者b.bname为空字符串)并且(b.bauthor等于a.bauthor或者b.bauthor为空字符串)

    第二个问题,b.bname = ""是判断b.bname是否为空字符串,b.bname is null是判断b.bname是否为空,两者是不一样的,你的数据表里bname值是null,得用 is null作为查询条件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么