2011-02-10 90 views
7

我有一個電子商務商店,我目前的工作,並有大約300產品,有一個字段名爲「product_url」MySQL查詢需要:我需要從300個表

這些刪除單個領域的所有數據字段包含我需要完全刪除的舊網址。

我該如何創建一個查詢來替換所有帶有空值的數據的「product_url」字段?

+0

你的意思是你有每個產品的單獨的表? O.o – 2011-02-10 14:25:09

+0

300個具有相同列名`product_url`的表? – 2011-02-10 14:25:29

回答

25

這會將每個product_url設置爲NULL,它當前不爲null。

UPDATE table_name 
SET product_url = NULL 
WHERE product_url is not null; 
1

假設所有的條目來填充空值:

UPDATE table_name SET product_url = NULL 
2

你有一個表中的每個產品?如果是這樣,我不知道。

否則;

UPDATE products_table 
SET product_url=null 
2

只是一個融會......所有的

UPDATE table_name SET column_name = NULL WHERE column_name = 'product_url' 
4

首先,如果你有300個表(每個產品),你不能寫一個查詢,將產品的URL設置爲NULL。

你必須爲每個表(UPDATE table_name SET product_url = NULL,如其他人已經說過)寫一個查詢。

如果你有一天有10,000個產品,如果你繼續這樣,你將有10,000個表。這將成爲一個維護噩夢,因爲你現在可以看到你有300桌的問題。

您的數據庫是非規範化的。如果您的產品共享相同的屬性,那麼它們應該位於一個名爲「產品」的表中,並且每個產品都應該表示爲一行。只有這樣你才能用一個查詢來做你想要的。

1

如果你有很多具有相同前綴和相同結構的表,你可以做一個SHOW TABLES LIKE prefix_%。然後遍歷此查詢的結果集並對每個表運行單獨的查詢。

0

這將刪除該列中的所有數據,而不刪除列本身。

UPDATE `table_name` SET `column_name`=null