爱学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日

悬赏问题

  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件
  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan