需要MySQL查询:我需要删除单个列中的所有数据
我有一个电子商务商店,我目前正在工作,大约有300种产品,其中有一个字段名为“product_url” 这些字段包含我需要删除的旧url需要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设置为空
如何创建一个查询,用空值替换所有“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”的字段。