首页 > 解决方案 > 我在这个 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 中完成的

标签: sqlpostgresql

解决方案


这是因为您在组中添加了AND条件。OR

所以它会导致1 && 0which 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条件。


推荐阅读