首页 > 解决方案 > 在 PostgreSQL 中将多个“AND”与“LIKE”语句组合

问题描述

在 PostgreSQL 中构建一个基本的搜索工具。

当我设置如下基本查询时,我会收到数据。

SELECT *
FROM schema_name.table_name
WHERE column_name1 = 'sometext' AND column_name2 LIKE '%sometext%'
;

但是,当我和下面的 where 子句的更多条件时,查询会执行,但我没有收到任何数据。

SELECT *
FROM schema_name.table_name
WHERE column_name1 = 'sometext' AND column_name2 LIKE '%sometext%' AND column_name3 = 'somemoretext'
;

我已经测试了单个查询以确保有满足所有条件的记录并且它们存在。但是,我找不到将条件绑定到一个查询中的方法。我在网上看到的大多数示例都停留在两个条件下,或者没有将“AND”与“LIKE”结合起来。任何帮助将不胜感激,谢谢!

-编辑1从这里开始-

在 PostgreSQL 中不生成数据的示例查询

SELECT *
FROM ctgov.studies
WHERE (overall_status = 'Recruiting') AND (official_title LIKE '%immunotherapy%') AND (source LIKE '%university%')
;

当我通过网站执行相同的搜索时,我为数据库收集数据,它返回 163 条匹配记录。在这种情况下使用“或”将检索与我正在寻找的所有条件不匹配的记录。

标签: sqlpostgresqlwheresql-like

解决方案


我认为你OR需要AND

  SELECT *
    FROM schema_name.table_name
    WHERE column_name1 = 'sometext' OR column_name2 LIKE '%sometext%' OR column_name3 = 'somemoretext'

推荐阅读