在多个表的所有列中搜索的最简单方法是什么?

时间:2013-06-01 12:19:39

标签: mysql sql

我有很多桌子:

d_customers
d_customers
d_news
d_pages
d_products
d_projects
d_sms 

我想创建一个搜索表单来搜索所有表中所有列中键入的任何单词...但是当编写SQL代码时,我发现它很长而且令人困惑......任何人都可以告诉我正确的这样做的方法?

'SELECT * FROM d_customers,d_customers,d_news,d_pages,d_products,d_projects,d_sms
WHERE ' . $nc_make . 'LIKE .....
AND LIKE.... AND LIKE.....  AND LIKE.....  AND LIKE.....  '

我希望通过LIKE字搜索所有表格中的所有图片...如果我搜索谷歌单词我想在所有列中选择所有列像所有列像谷歌

2 个答案:

答案 0 :(得分:0)

create table t1(a int);
create table t2(a int, b int);
insert into t1 values (1);
insert into t2 values (1,3);

SELECT *
  FROM (
         (select 't1' as tbl, a as Col1, null as Col2 from t1) 
         union
         (select 't2' as tbl, a as Col1,    b as Col2 from t2)
       ) as U
where U.Col1 = 1 or U.Col2 = 1

结果:

TBL COL1 COL2
t1  1    (null)
t2  1    3

答案 1 :(得分:-1)

如果表格彼此相关,则加入他们并应用您的条件。

select *
from customers c
inner join pages p
on p.customer_id=c.customer_id
where customer_name like 'xyz'

如果有必要,你无法避免sql中的连接和条件,但你可以优化它们。

如果要使用编程动态生成查询,然后想要执行,那么在mysql information_schema 中存储与表相关的所有信息以及该表中包含的字段。您可以使用它来生成动态SQL。

希望这有帮助。