我有一个名为listDB的mySQL数据库,其中包含几个列名称为Product等的表。我想从所有Product Like %XYZ%的表中执行SELECT操作,并在一个单独的表中显示搜索结果。
我试过这个:
SELECT * FROM * WHERE Product LIKE %XYZ%但它不起作用。用于此目的的正确查询是什么?
发布于 2013-02-18 15:08:00
您可以使用以下语句获取包含列product的所有表:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('Product')
AND TABLE_SCHEMA='YourDatabase';然后,您必须在这些表上运行cursor,以便选择eachtime:
Select * from OneTable where product like '%XYZ%'结果应该输入到第三个表或视图中,看看here。
注意:只有当所有表的结构相似时,这才能起作用,否则aou将不得不查看所有这些表的哪些列是联合的,并创建您的结果表/视图以仅包含这些列。
发布于 2013-09-26 01:16:56
SELECT product FROM Your_table_name WHERE Product LIKE '%XYZ%';上面的语句将显示单个表的结果。如果您想添加更多的表,那么只需使用UNION语句。
SELECT product FROM Table_name_1
WHERE Product LIKE '%XYZ%'
UNION
SELECT product FROM Table_name_2
WHERE Product LIKE '%XYZ%'
UNION
SELECT product FROM Table_name_3
WHERE Product LIKE '%XYZ%' ..。诸若此类
发布于 2013-02-18 15:07:55
正如苏赫尔·梅曼在评论中所说:
SELECT column1, column2, column3 FROM table 1
UNION
SELECT column1, column2, column3 FROM table 2
...会起作用的。
但是您的所有SELECTS必须由相同数量的列组成。因为您在一个结果表中显示它,所以它们应该包含相同的信息。
您可能想要做的是,对Product ID或类似的东西进行连接。这样,您将获得更多的列,这在大多数情况下更有意义。
https://stackoverflow.com/questions/14931001
复制相似问题