Mysql 从mytable中删除类似“%word%”列的问题

Mysql 从mytable中删除类似“%word%”列的问题,mysql,Mysql,我有要从数据库中删除的电子邮件地址。我想按@符号后的域名删除它们 我可以这样删除它们吗 DELETE FROM mytable WHERE column LIKE '%gmx.com%' OR column LIKE '%web.de%' OR column LIKE '%yandex.com%' OR column LIKE '%yahoo.com%' 行吗?行,行。请注意,它将删除行,而不仅仅是列中的值。只是提示,如果可以选择它们,则可以删除它们: 我假设“column”包含电子邮件地址

我有要从数据库中删除的电子邮件地址。我想按@符号后的域名删除它们

我可以这样删除它们吗

DELETE FROM mytable WHERE column LIKE '%gmx.com%' OR column LIKE '%web.de%' 
OR column LIKE '%yandex.com%' OR column LIKE '%yahoo.com%'

行吗?

行,行。请注意,它将删除行,而不仅仅是列中的值。

只是提示,如果可以选择它们,则可以删除它们:
我假设“column”包含电子邮件地址,所以对于您的问题,是的,它会起作用,但请确保您只想删除该列中的值或与该值相关的任何内容。

我不是DB专家,但它不会删除电子邮件地址,而是删除包含column中提到的任何域的整个记录。如果您只想删除电子邮件地址,那么您应该执行以下操作

UPDATE mytable SET column = '' WHERE column LIKE '%gmx.com%' OR column LIKE '%web.de%' 
OR column LIKE '%yandex.com%' OR column LIKE '%yahoo.com%'
这将仅将email字段设置为空字符串,并实际上从WHERE子句中的记录中删除电子邮件地址,从而保留记录。
顺便说一句,如果你想去掉@之后的所有内容,我认为你不需要“%yahoo.com%”中的最后一个%,我认为去掉最后一个%会稍微提高性能。

像“%@domainmae”一样使用这是一个很好的提示。我正是这么做的。我正在用SELECT测试它,看看在我删除它们之前是否一切正常。@Jim James很高兴我能帮上忙。好主意。我可以那样做。虽然我更愿意完全删除这些条目。我不知道为什么有人投票反对,但这个人是对的。