使用php和mysql制作一个通用搜索框来搜索几个表



我有两个表,即:tbl_subscribertbl_faculty
tbl_subscriber具有字段,即:nameid_numberemailphone

tbl_faculty有:f_namel_nameemailphone

我有一个搜索框。我想写一个查询,如果我在其中键入电话号码/email/name/f_name/l_name,它应该搜索两个表以匹配所提供的条目,并返回与该条目对应的所有行。

可以肯定的是,所提供的条目将在上述表中的任何一个表中(正如我所做的那样),而不是同时在这两个表中。我的意思是,一次只有一个表字段匹配,但查询应该同时搜索这两个表。

select x , y  from tbl_subscriber 
union all 
select x , null as y  from tbl_faculty 

这可能会奏效:

SELECT name,id_number,email,phone FROM tbl_subscriber
UNION 
SELECT CONCAT(f_name, ' ', l_name) AS name, id_number, email, phone FROM tbl_faculty

您可能需要对name字段进行一些强制转换,但它至少可以解决表具有不同数量字段的问题。

最新更新