我有一些要从数据库中删除的电子邮件地址。我想通过@符号后的域名删除它们。
我可以这样删除它们吗?:
DELETE FROM mytable WHERE column LIKE '%gmx.com%' OR column LIKE '%web.de%'
OR column LIKE '%yandex.com%' OR column LIKE '%yahoo.com%'
能行吗?
答案 0 :(得分:2)
是的,这将起作用。请注意,它将删除行,而不仅仅是列中的值。
答案 1 :(得分:1)
只是一个提示,如果可以选择它们,则可以将其删除:) 我假设“列”包含电子邮件地址,所以对于您的问题,是的,它可以工作,但是请确保您是否只想删除该列中的值或与该值相关的任何内容。
答案 2 :(得分:1)
我不是数据库专家,但它不会删除电子邮件地址,但会删除包含“列”中提到的任何域的整个记录。如果您只想删除电子邮件地址,则应执行
UPDATE mytable SET column = '' WHERE column LIKE '%gmx.com%' OR column LIKE '%web.de%'
OR column LIKE '%yandex.com%' OR column LIKE '%yahoo.com%'
这将仅将电子邮件字段设置为空字符串,并事实上删除了WHERE子句中记录中的电子邮件地址,从而保留了该记录。 顺便说一句,如果您想摆脱@之后的所有内容,我认为您不需要'%yahoo.com%'中的最后一个%,并且我认为省略最后一个%会改善性能。