2014-03-19 38 views
0

我正在一个Wordpress网站上制作100,000个以上的垃圾邮件帐户。尽管还有其他类型,但其中很多似乎都有一个以数字开头的用户名。看到第一个索引值是否是一个数字

所以我想问一下,是否有MYSQL查询到select/delete所有用户名都以数字开头的用户。

此问题的一个扩展是,无论这些用户是需要从用户表中删除还是用户元或其他表。

任何帮助表示赞赏。

+0

作为一个侧面说明,你应该得到这个词围栏插件来增强安全性 – amaster

+0

谢谢你的评论。已经使用si captcha,但仍然问题似乎坚持:)。 (也使用buddypress注册) –

+0

我的WP网站之一我有类似的问题,我真的不希望用户注册反正,除非特别允许,所以我只需在注册页面上放置一个htaccess密码。只是一个想法,如果你真的不在乎是否有人注册。 – amaster

回答

0

是的,有MySQL查询(当然)几乎应有尽有,下面的查询选择这样的用户,你只需要运行它几次:

SELECT * FROM wp_users WHERE user_login LIKE 'put_number_here%' OR user_nicename LIKE LIKE 'put_number_here%' OR display_name LIKE 'put_number_here%' 

与起始号码更换put_number_here并继续。

然后,保证这些用户不合法之后,你可以用几乎相同的查询删除:

DELETE FROM wp_users WHERE user_login LIKE 'put_number_here%' OR user_nicename LIKE LIKE 'put_number_here%' OR display_name LIKE 'put_number_here%' 

编辑: 这里是用户定义的函数,用来检查是否从一个给定值字段是数字。

CREATE FUNCTION ISNUMERIC(myVal VARCHAR(1024)) 
RETURNS TINYINT(1) DETERMINISTIC 
RETURN myVal REGEXP '^(-|\\+)?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$'; 
+0

谢谢。但是是否有任何通用查询(例如mysql函数)来查看第一个参数是否为数字。 –

+0

不,你必须创建你自己的函数(所谓的UDF)。看到我的答案编辑。 – bodi0

+0

好的。谢谢。将标记为答案。你也可以知道哪些wp表拥有新用户的信息。他们只是用户和user_meta表吗? –

相关问题