从所有表中选择
我有一个名为listDB
的mySQL数据库,其中包含多个带有列名Product
表等。我想从所有表中SELECT
Product Like%XYZ%,并将搜索结果显示在单独的表中。
我试过这个:
SELECT * FROM * WHERE Product LIKE %XYZ%
但它不起作用。 什么是正确的查询这个目的?
您可以使用以下语句获得包含列产品的所有表格:
SELECT DISTINCT TABLE_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE COLUMN_NAME IN ('Product')
AND TABLE_SCHEMA='YourDatabase';
然后,您必须在这些表上运行光标,以便每次选择:
Select * from OneTable where product like '%XYZ%'
结果应该输入到第三个表格或视图中,看看这里。
注意:只有当所有表格的结构相似时,这才可以工作,否则你将不得不查看所有这些表格的统一列,并创建结果表/视图以仅包含这些列。
正如Suhel Meman在评论中所说:
SELECT column1, column2, column3 FROM table 1
UNION
SELECT column1, column2, column3 FROM table 2
...
会工作。
但是所有的SELECTS
都必须包含相同数量的列。 而且,因为您将它显示在一个结果表中,它们应该包含相同的信息。
你可能想要做的是加入产品ID或类似的东西。 这样你会得到更多的列,这使得大部分时间更有意义。
为什么你不只是转储mysql数据库,而是在没有使用-single-transaction的情况下运行扩展时,你会中断与其他客户端的连接:
mysqldump --host=hostname.de --port=0000 --user=username --password=password --single-transaction --skip-add-locks --skip-lock-tables --default-character-set=utf8 datenbankname > mysqlDBBackup.sql
之后,读出文件并搜索你想要什么....在字符串.....
链接地址: http://www.djcxy.com/p/94329.html下一篇: Laravel / Eloquent memory leak retrieving the same record repeatedly