我有很多桌子:
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字搜索所有表格中的所有图片...如果我搜索谷歌单词我想在所有列中选择所有列像所有列像谷歌
答案 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。
希望这有帮助。