我知道这是不正确的,但这基本上是我想要做的:
delete FROM jos_users WHERE name like '<firstname>=<lastname>'
在 Joomla 中,名称field
是一个输入,并且有很多具有相同名字和姓氏的垃圾邮件帐户 - 例如 Uzhuzaio Uzhuzaio - 我想删除它们。
所以总而言之,我需要一个查询来删除字段jos_users
中name
包含 2 个相同单词的用户
我觉得
DELETE FROM jos_users WHERE SUBSTRING_INDEX(name, '=', 1 ) = SUBSTRING_INDEX(name, '=', -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
等)。
默认情况下,Joomla 没有名字和姓氏的单独字段。很可能您将它们用某个符号分隔。我建议定义它并编写一个简单的 PHP 代码。至少这是我会做的。