我有一個名爲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