我的SQL查询没有得到任何运气,以获得具有角色订阅者的用户:
SELECT
ID,
display_name
FROM 'wp_users'
INNER JOIN 'wp_usermeta' ON 'wp_users'.ID = 'wp_usermeta'.user_id
WHERE 'wp_usermeta'.meta_key = 'wp_capabilities'
AND ('wp_usermeta'.meta_value LIKE 'subscriber') ORDER BY display_name
有人能帮我吗?
8条答案
按热度按时间e4eetjau1#
我已经得到了我的问题的答案:
如果有人遇到同样的问题,请使用我上面的SQL查询。
zbwhf8kr2#
下面是@qqruza的答案的一个小变体,它包括用户的电子邮件和角色,并返回所有角色的用户。
如果你有一个WordPress多站点安装,要获取所有子站点的角色,用途:
当然,您需要查看
wp_usermeta.meta_key
值来确定记录适用于哪个子站点(博客)。ev7lccsx3#
这对我很有效:
3duebb1j4#
我不熟悉WordPress的内部结构,但我可以告诉你,你的
LIKE
声明可能是错误的。在LIKE参数中没有隐式/自动通配符,因此您所拥有的(没有通配符)基本上与使用=
相同。你可能想要:pod7payv5#
您可以用途:
vx6bjr1n6#
如果你想获取其他元信息,你可以使用子查询,只要记住子查询越多,整个查询就越慢。
vvppvyoh7#
s4chpxco8#
公认的解决方案假设表前缀是“wp_”,这很好,但由于安全性,这种情况很少出现。但是,有些用户可能会发现,由于对表列名的详细调用,以及需要更改Meta_key过滤器以包含表前缀,因此难以适应已接受的解决方案。
下面的SQL为那些发现SQL难以适应自己的示例的用户简化了这一点,并使Meta_key过滤器独立于表前缀。
只需要为FROM语句中的users和usermeta更改表前缀。
所有的荣誉,以接受的解决方案,我只希望这个解决方案简化了SQL代码一点。