sql - 我在这个 where 语句中做错了什么?
问题描述
我在 where 语句中使用了以下逻辑。
如果我只执行下面的语句,那么它会返回结果
where a.CONDITION_NAME like '%colon%' and a.STUDY_CRITERIA like '%braf%'
但是,如果我将 where 逻辑扩展到以下语句,它不会返回任何结果。为什么?它不应该返回与上面的 where 语句相同的东西吗?
where a.CONDITION_NAME like '%colon%' and a.STUDY_CRITERIA like '%braf%' and
(a.SHORT_TITLE like '%braf%' or
a.STUDY_TITLE like '%braf%' or
a.DESCRIPTION like '%braf%')
基本上我想要的是以下内容。我需要它来查找条件名称类似于冒号且学习条件字段类似于 braf 的记录。但是由于还有其他字段可以包含 braf 术语,所以我需要它来搜索短标题或研究标题或描述是否也包含 braf 术语。有没有不同的方法来编码?这是通过 postgreSQL 在 pgadmin4 中完成的
解决方案
这是因为您在组中添加了AND
条件。OR
所以它会导致1 && 0
which is 0
。
where (a.CONDITION_NAME like '%colon%' and a.STUDY_CRITERIA like '%braf%') or
(a.SHORT_TITLE like '%braf%' or
a.STUDY_TITLE like '%braf%' or
a.DESCRIPTION like '%braf%')
将此更改为OR
条件。
推荐阅读
- python - 访问python中元组列表中的变量的问题
- python - 在 matplotlib 中没有出现堆积条形图的刻度
- python-3.x - python中的记录器实用程序
- android - 底部工作表布局上的浮动按钮
- c - 在将元素推送到队列之前增加队列的大小如何让我出错而相反的工作正常?
- python - 什么是 。get() 函数可以在 python 中为字典以外的其他人做吗?
- python - patch.multiple() 返回一个空字典
- javascript - Trello API - 创建新卡片 - 名称
- python - 从服务器端脚本python下载文件
- flutter - Firestore 和 Flutter:使用流优化数据读取