MySQL Query需要:我需要从300个表中删除单个字段中的所有数据

时间:2011-02-10 14:23:04

标签: mysql

我有一个我正在处理的电子商务商店,大约有300个产品有一个名为“product_url”的字段

这些字段包含我需要完全删除的旧网址。

如何创建一个查询,将所有“product_url”字段替换为空值的数据?

7 个答案:

答案 0 :(得分:29)

这会将每个product_url设置为NULL,当前不为null。

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

答案 1 :(得分:4)

首先,如果您有300个表(每个产品一个),则无法编写一个将产品URL设置为NULL的查询。

你必须为每个表(UPDATE table_name SET product_url = NULL写一个查询,正如其他人已经说过的那样)。

如果你有一天有10,000件商品,那么如果你继续这样的话你会有10,000张桌子。这将成为维护的噩梦,因为你现在可以看到你对300个桌子有什么样的问题。

您的数据库是非规范化的。如果您的产品共享相同的属性,则它们应位于名为“Products”的一个表中,并且每个产品应表示为一行。只有这样,你才能用一个查询做你想做的事。

答案 2 :(得分:2)

每个产品都有一张桌子吗?如果是这样我不知道。

否则;

UPDATE products_table
SET product_url=null

答案 3 :(得分:2)

只是一种解释......

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

答案 4 :(得分:1)

假设所有条目都填充NULL:

UPDATE table_name SET product_url = NULL

答案 5 :(得分:1)

如果您有许多具有相同前缀和相同结构的表,则可以执行SHOW TABLES LIKE prefix_%。然后循环遍历此查询的结果集,并对每个表运行单独的查询。

答案 6 :(得分:0)

这将删除该列中的所有数据而不删除列本身。

    UPDATE `table_name` SET `column_name`=null
相关问题