搜索

2016-04-03 36 views
0

我想創建搜索Postgres裏搜索

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

申請地址簿當我輸入一些字符串到搜索提交我想從所有表列獲得所有可用的數據。這種情況下適當的SQL查詢是什麼?

+0

像[這裏](http://stackoverflow.com/questions/7922744/how-can-i-search-all-columns-in-a-table)應該工作。您也可以考慮使用FULL-TEXT索引 – lad2025

+0

我可以知道爲什麼我會得到負面評價嗎? – user1285928

+0

[如何在所有表格(PostgreSQL)中搜索特定值的可能的重複?](http://stackoverflow.com/questions/5350088/how-to-search-a-specific-value-in-all-tables- postgresql) – Tony

回答

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查詢返回,並指定列 名稱,而不是*