我有一個電子商務商店,我目前的工作,並有大約300產品,有一個字段名爲「product_url」MySQL查詢需要:我需要從300個表
這些刪除單個領域的所有數據字段包含我需要完全刪除的舊網址。
我該如何創建一個查詢來替換所有帶有空值的數據的「product_url」字段?
我有一個電子商務商店,我目前的工作,並有大約300產品,有一個字段名爲「product_url」MySQL查詢需要:我需要從300個表
這些刪除單個領域的所有數據字段包含我需要完全刪除的舊網址。
我該如何創建一個查詢來替換所有帶有空值的數據的「product_url」字段?
這會將每個product_url設置爲NULL,它當前不爲null。
UPDATE table_name
SET product_url = NULL
WHERE product_url is not null;
假設所有的條目來填充空值:
UPDATE table_name SET product_url = NULL
你有一個表中的每個產品?如果是這樣,我不知道。
否則;
UPDATE products_table
SET product_url=null
只是一個融會......所有的
UPDATE table_name SET column_name = NULL WHERE column_name = 'product_url'
首先,如果你有300個表(每個產品),你不能寫一個查詢,將產品的URL設置爲NULL。
你必須爲每個表(UPDATE table_name SET product_url = NULL
,如其他人已經說過)寫一個查詢。
如果你有一天有10,000個產品,如果你繼續這樣,你將有10,000個表。這將成爲一個維護噩夢,因爲你現在可以看到你有300桌的問題。
您的數據庫是非規範化的。如果您的產品共享相同的屬性,那麼它們應該位於一個名爲「產品」的表中,並且每個產品都應該表示爲一行。只有這樣你才能用一個查詢來做你想要的。
如果你有很多具有相同前綴和相同結構的表,你可以做一個SHOW TABLES LIKE prefix_%
。然後遍歷此查詢的結果集並對每個表運行單獨的查詢。
這將刪除該列中的所有數據,而不刪除列本身。
UPDATE `table_name` SET `column_name`=null
你的意思是你有每個產品的單獨的表? O.o – 2011-02-10 14:25:09
300個具有相同列名`product_url`的表? – 2011-02-10 14:25:29