4

我知道这是不正确的,但这基本上是我想要做的:

delete FROM jos_users WHERE name like '<firstname>=<lastname>'

在 Joomla 中,名称field是一个输入,并且有很多具有相同名字和姓氏的垃圾邮件帐户 - 例如 Uzhuzaio Uzhuzaio - 我想删除它们。

所以总而言之,我需要一个查询来删除字段jos_usersname包含 2 个相同单词的用户

4

3 回答 3

2

我觉得

DELETE FROM jos_users WHERE SUBSTRING_INDEX(name, '=', 1 ) = SUBSTRING_INDEX(name, '=', -1 )

应该做的伎俩,你试过吗?

于 2012-11-27T07:56:51.030 回答
1

您可以使用SUBSTRING_INDEX,它在分隔符出现一定次数之前或之后返回子字符串。
在下面的示例中,空格是分隔符,计数为 1 将返回第一个空格左侧的所有内容,计数为 -1 将返回第一个空格右侧的所有内容。

DELETE FROM jos_users WHERE 
       SUBSTRING_INDEX(name, " ", 1)=SUBSTRING_INDEX(name, " ", -1)

但是,我会先执行 SELECT,以查看那里没有合法用户(很少见,但可能会发生)

重要提示:这仅适用于名称格式为 的情况<name> <surname>。多个空格会造成问题。在多个空格(例如<composite name> <composite name>)的情况下,您应该使用不同的计数值(2;-2 3;-3等)。

于 2012-11-27T08:03:01.987 回答
0

默认情况下,Joomla 没有名字和姓氏的单独字段。很可能您将它们用某个符号分隔。我建议定义它并编写一个简单的 PHP 代码。至少这是我会做的。

于 2012-11-27T07:57:45.197 回答