0

我有很多表:

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 字搜索所有表格中的所有 coulmns ...如果我搜索 google 字我想选择所有表格中的所有表格,其中所有列都像 google

4

2 回答 2

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
于 2013-06-01T13:04:34.723 回答
-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。

希望这可以帮助。

于 2013-06-01T12:27:23.617 回答