删除mySQL中包含@符号的行

时间:2017-06-04 07:04:20

标签: mysql sql

您好我想知道是否有任何方法可以删除文本字符串中包含@符号的任何行。

我已经尝试过:

DELETE FROM FilteredJobs WHERE Description LIKE '%[@]%'

但是这会返回0行(我知道有4行)

我需要在mySQL中完成此操作,因为将有其他mySQL函数来执行此任务。

3 个答案:

答案 0 :(得分:0)

试试这个:

DELETE FROM FilteredJobs WHERE Description LIKE '%@%'

您似乎正在尝试使用包含at符号的正则表达式字符类。这不会与LIKE一起使用,但它应该与REGEXP一起使用,例如

DELETE FROM FilteredJobs WHERE Description REGEXP '[@]'

这是一个演示,表明您的方法可以使用REGEXP

Rextester

答案 1 :(得分:0)

您可以使用locate,它返回主值...

中子字符串的位置
DELETE FROM FilteredJobs WHERE locate('@', Description) > 0;

答案 2 :(得分:-1)

嗯,这是我能想到的,可能不是完美的答案,但绝对可以尝试:

UPDATE FilteredJobs SET Description = REPLACE(Description, '@', 'TO_BE_DELETED');

然后您可以触发正常的DELETE查询:

DELETE FROM FilteredJobs WHERE Description LIKE '%TO_BE_DELETED%';