需要MySQL查询:我需要删除单个列中的所有数据

需要MySQL查询:我需要删除单个列中的所有数据,mysql,Mysql,我有一个电子商务商店,我目前正在工作,大约有300种产品,其中有一个字段名为“product_url” 这些字段包含我需要删除的旧url 如何创建一个查询,用空值替换所有“product\u url”字段中的数据?假设所有条目都用空值填充: UPDATE table_name SET product_url = NULL 每种产品都有桌子吗?如果是,我不知道 否则 UPDATE products_table SET product_url=null 这会将当前不为空的每个产品url设置为空

我有一个电子商务商店,我目前正在工作,大约有300种产品,其中有一个字段名为“product_url”

这些字段包含我需要删除的旧url


如何创建一个查询,用空值替换所有“product\u url”字段中的数据?

假设所有条目都用空值填充:

UPDATE table_name SET product_url = NULL

每种产品都有桌子吗?如果是,我不知道

否则

UPDATE products_table
SET product_url=null

这会将当前不为空的每个产品url设置为空

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

只是一个解释

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

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

您必须为每个表编写一个查询(
updatetable\u name SET product\u url=NULL,正如其他人已经说过的那样)

如果你每天有10000种产品,如果你继续这样做,你将有10000张桌子。这将成为维护的噩梦,因为您现在可以看到300个表有什么样的问题


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

如果你有很多表都有相同的前缀和相同的结构,你可以做一个
像prefix%
那样显示表。然后循环此查询的结果集,并对每个表运行单独的查询。

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

    UPDATE `table_name` SET `column_name`=null

你是说每种产品都有一张单独的桌子?O.o300具有相同列名的表
product\u url
?虽然您的答案是正确的,但如果OP确实有很多具有相同字段的表,我会敦促他/她重新考虑他的设计。@Simone:是的,这是一种广泛的反模式,但如果在正确的情况下谨慎使用,它可以简化扩展和性能。这似乎很有趣。你有任何参考资料吗?我认为OPs标题是不正确的,但在实际问题中,OP将其称为一个名为“product_url”的字段。