我想在Postgres中为地址簿创建搜索文件
AddressBook (pid, tag, address1, address2, city, stateProv, postalCode, ... )
当我在搜索字段中键入一些字符串时,我希望从所有表列中获取所有可用数据。这种情况的SQL查询是什么?
答案 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并指定您的列 名称而不是*