我有一个名为listDB
一个MySQL数据库中包含有列名Product
等我想SELECT
从所有的表,其中产品类似%XYZ%,并在一个单独的表显示搜索结果几个表。选择所有表 - MySQL的
我尝试这样做:
SELECT * FROM * WHERE Product LIKE %XYZ%
但它无法正常工作。什么是正确的查询这个目的?
我有一个名为listDB
一个MySQL数据库中包含有列名Product
等我想SELECT
从所有的表,其中产品类似%XYZ%,并在一个单独的表显示搜索结果几个表。选择所有表 - MySQL的
我尝试这样做:
SELECT * FROM * WHERE Product LIKE %XYZ%
但它无法正常工作。什么是正确的查询这个目的?
由于Suhel Meman在评论中说:
SELECT column1, column2, column3 FROM table 1
UNION
SELECT column1, column2, column3 FROM table 2
...
会工作。
但所有SELECTS
必须由相同数量列的。而且,因为您将它显示在一个结果表中,它们应该包含相同的信息。
你可能想要做什么,是一个连接上的产品ID或类似的东西。这样你会得到更多的列,这使得大部分时间更有意义。
你得到使用该statment包含列产品中的所有表:
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%'
结果应输入到第3表或视图,看看here。
注意:这只能工作,如果所有表的结构是相似的,否则AOU还得看哪些列团结所有这些表,并创建你的结果表/视图只包含这些列。
你可以得到具有列“产品”从INFORMATION_SCHEMA.COLUMNS
SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name ="Product";
所有表也创建一个过程
delimiter //
CREATE PROCEDURE curdemo()
BEGIN
DECLARE a varchar(100);
DECLARE cur1 CURSOR FOR SELECT DISTINCT table_name FROM information_schema.columns WHERE column_name ="Product";
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO a;
SELECT * FROM a;
END LOOP;
CLOSE cur1;
END;
delimiter ;
call curdemo();
为什么你不只是转储MySQL数据库但其扩展,当你在没有 - 单一事务的情况下运行,您将中断与其他客户端的连接:
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
后读出的文件,然后搜索你想要的东西....字符串中.....
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%'
...等等
使用'union' ..'UNION用于将结果从多个SELECT语句合并成一个结果集。 ' – 2013-02-18 07:02:22
试试这个SELECT * FROM listDB * WHERE产品LIKE '%XYZ%'。 – Parvathy 2013-02-18 07:02:42
@Parvathy - 这查询不工作..发生语法错误 – 2013-02-18 07:54:09