搜索所有数据库字段

时间:2016-04-03 21:35:41

标签: sql postgresql postgresql-9.2

我想在Postgres中为地址簿创建搜索文件

AddressBook (pid, tag, address1, address2, city, stateProv, postalCode, ... ) 

当我在搜索字段中键入一些字符串时,我希望从所有表列中获取所有可用数据。这种情况的SQL查询是什么?

1 个答案:

答案 0 :(得分:1)

我猜你每次用户更新调用方法的值时都会传入值的参数,这样你就可以这样做:

-- DECLARE @yourSearch varchar(max);
-- This will be passed in your server side code

    SELECT *
    FROM AddressBook
    WHERE pid LIKE '%@yourSearch%' OR 
          tag LIKE '%@yourSearch%' OR  
          address1 LIKE '%@yourSearch%' OR 
          address2 LIKE '%@yourSearch%' OR 
          city LIKE '%@yourSearch%' OR 
          stateProv LIKE '%@yourSearch%' OR
          postalCode LIKE '%@yourSearch%'

如果你想找到一个完全匹配你可以做这样的事情,这将获得所有的子串匹配:

SELECT *
FROM AddressBook
WHERE @yourSearch IN (pid, tag, address1, address2, city, stateProv, postalCode)
  

请注意你说所有所以我甚至反对它的ID   我认为你不希望用户看到的地址   但我把它保留在那里 - 只删除pid的每个实例   您不希望查询中返回的ID并指定您的列   名称而不是*