我是创建网站的新手。我正在创建一个电话目录搜索引擎。(使用PostgreSql,CGI脚本)。我的数据库有名称,电话号码,城市,州,地址。
到目前为止,我已经创建了一个像“google”这样的搜索字段,我可以在其中提供上述任何数据库条目和搜索。但是现在我想给出“name + city + ...”这样我可以最小化输出条目。
答案 0 :(得分:2)
除了Silver Light's answer之外,您还可以使用PostgreSQL的multicolumn index来搜索单个索引中的任何或所有字段。
答案 1 :(得分:1)
你的意思是你要搜索所有字段吗?然后:
SELECT *
FROM table_name
WHERE
Name LIKE '%query%'
OR Tel.No LIKE '%query%'
OR City LIKE '%query%'
OR State LIKE '%query%'
OR Address LIKE '%query%'
答案 2 :(得分:1)
我碰巧不知道您正在使用的编程语言,但我可以让您了解可能使用的算法。 实际上它很简单,包含许多(if-conditions)
喜欢下面的内容:
if(提供姓名)=>带来匹配的结果并将它们存储在Set1中 如果(提供城市)=>在Set1中过滤结果,只获得匹配的结果并将它们存储在S2中 if(提供地址)=>在S2中过滤结果并获得匹配的结果并将它们存储在S3 ...等等。
通过这种方式,您可以获取整套电话记录并一次又一次地对其进行过滤,直到您将其完全过滤为止,无论用户输入什么都会给他带来一些结果
我的意思是,如果您输入一个字段,您将获得大量结果,如果您输入两个字段,您将得到较少的结果,因为结果将被过滤两次,如果他输入三个字段,结果将被过滤三次,依此类推...
简而言之......只需使用过滤 抱歉,答案很长
答案 3 :(得分:0)
您可以创建一个函数,在检查用户已执行搜索查询的字段后,可以动态创建WHERE子句。