Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用多个列在PostgreSQL中搜索查询_Postgresql - Fatal编程技术网

使用多个列在PostgreSQL中搜索查询

使用多个列在PostgreSQL中搜索查询,postgresql,Postgresql,我必须通过文本实现查询搜索,但它可以匹配多个列:地址、名称、应用程序引用、代理、状态或决策 数据库中的行数为100万,并且每周都在增加 这是将执行查询的表 我计划使用“like”语句和一些“or”语句进行查询,但我认为对于每周都在增加的表来说,这不是一个好主意。我使用tsvector实现了这一点,这是一个查询示例: SELECT * FROM planning_data JOIN planning_portals ON planning_data.portal = planning_porta

我必须通过文本实现查询搜索,但它可以匹配多个列:地址、名称、应用程序引用、代理、状态或决策

数据库中的行数为100万,并且每周都在增加

这是将执行查询的表


我计划使用“like”语句和一些“or”语句进行查询,但我认为对于每周都在增加的表来说,这不是一个好主意。

我使用tsvector实现了这一点,这是一个查询示例:

SELECT *
FROM planning_data JOIN planning_portals ON planning_data.portal = planning_portals.id 
WHERE to_tsvector(
            coalesce(planning_data.title, '') || ' ' || 
            coalesce(planning_data.address, '') || ' ' || 
            coalesce(planning_data.ref_number, '') || ' ' || 
            coalesce(planning_data.status, '') || ' ' || 
            coalesce(planning_data.decision, '') || ' ' || 
            coalesce(planning_data.appeal_decision, '') || ' ' || 
            coalesce(planning_data.applicant_name, '') || ' ' || 
            coalesce(planning_data.agent_name, '') || ' ' || 
            coalesce(planning_data.agent_company_name, '') || ' ' || 
            coalesce(planning_data.agent_address, '') || ' ' || 
            coalesce(planning_data.agent_email, '') || ' ' || 
            coalesce(planning_data.status_group, '') || ' ' || 
            coalesce(planning_data.postcode, '') || ' ' || 
            coalesce(planning_portals.name, '')) @@ to_tsquery('47C & Oldfields & Circus')
请参阅:

可以使用
concat\ws('',标题,地址,参考号,…)简化
|
的级联过程。