首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从所有表中选择- MySQL

从所有表中选择- MySQL
EN

Stack Overflow用户
提问于 2013-02-18 14:58:11
回答 6查看 146.1K关注 0票数 22

我有一个名为listDB的mySQL数据库,其中包含几个列名称为Product等的表。我想从所有Product Like %XYZ%的表中执行SELECT操作,并在一个单独的表中显示搜索结果。

我试过这个:

代码语言:javascript
运行
复制
SELECT * FROM * WHERE Product LIKE %XYZ%

但它不起作用。用于此目的的正确查询是什么?

EN

回答 6

Stack Overflow用户

发布于 2013-02-18 15:08:00

您可以使用以下语句获取包含列product的所有表:

代码语言:javascript
运行
复制
SELECT DISTINCT TABLE_NAME 
    FROM INFORMATION_SCHEMA.COLUMNS
    WHERE COLUMN_NAME IN ('Product')
        AND TABLE_SCHEMA='YourDatabase';

然后,您必须在这些表上运行cursor,以便选择eachtime:

代码语言:javascript
运行
复制
Select * from OneTable where product like '%XYZ%'

结果应该输入到第三个表或视图中,看看here

注意:只有当所有表的结构相似时,这才能起作用,否则aou将不得不查看所有这些表的哪些列是联合的,并创建您的结果表/视图以仅包含这些列。

票数 12
EN

Stack Overflow用户

发布于 2013-09-26 01:16:56

代码语言:javascript
运行
复制
SELECT product FROM Your_table_name WHERE Product LIKE '%XYZ%';

上面的语句将显示单个表的结果。如果您想添加更多的表,那么只需使用UNION语句。

代码语言:javascript
运行
复制
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%' 

..。诸若此类

票数 6
EN

Stack Overflow用户

发布于 2013-02-18 15:07:55

正如苏赫尔·梅曼在评论中所说:

代码语言:javascript
运行
复制
SELECT column1, column2, column3 FROM table 1
UNION
SELECT column1, column2, column3 FROM table 2
...

会起作用的。

但是您的所有SELECTS必须由相同数量的列组成。因为您在一个结果表中显示它,所以它们应该包含相同的信息。

您可能想要做的是,对Product ID或类似的东西进行连接。这样,您将获得更多的列,这在大多数情况下更有意义。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14931001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档