我知道这不正确,但这基本上就是我想做的事情:
delete FROM jos_users WHERE name like '<firstname>=<lastname>'
在Joomla中,名称field
是一个输入,并且有很多垃圾邮件帐户具有相同的第一个&amp;姓氏 - 例如Uzhuzaio Uzhuzaio - 我想删除。
总而言之,我需要一个查询来删除jos_users
中name
字段包含2个相同单词的用户
答案 0 :(得分:2)
我认为
DELETE FROM jos_users WHERE SUBSTRING_INDEX(name, '=', 1 ) = SUBSTRING_INDEX(name, '=', -1 )
应该做的伎俩,你试过吗?
答案 1 :(得分:1)
您可以使用SUBSTRING_INDEX,它会在分隔符出现一定数量之前或之后返回子字符串。
在下面的示例中,space是分隔符,count为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
等)。
答案 2 :(得分:0)
默认情况下,Joomla没有名字和名字的单独字段。很可能你用一些符号分隔它们。我建议定义它并编写一个简单的PHP代码。至少这是我会做的。