SQL 查询以获取具有订阅者角色的用户
SQL Query to Get Users With Role Subscriber
我的 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
任何人都可以帮助我吗?
我不熟悉 WordPress 的内部结构,但我可以告诉你,你的 LIKE
说法可能是错误的。 LIKE 参数中没有 implicit/automatic 通配符,因此您所拥有的(没有通配符)与使用 =
基本相同。 IE。你可能想要:
'wp_usermeta'.meta_value LIKE '%subscriber%'
我得到了问题的答案:
SELECT wp_users.ID, wp_users.user_nicename
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 wp_users.user_nicename
如果有人遇到同样的问题,请使用我上面的 SQL 查询。
您可以使用:
$user_query = new WP_User_Query( array( 'role' => 'Subscriber' ) );
@qqruza 的回答略有不同,其中包括用户的电子邮件和角色以及所有角色的 returns 用户。
SELECT wp_users.ID, wp_users.user_nicename, wp_users.user_email, wp_usermeta.meta_value
FROM wp_users
JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities'
ORDER BY wp_users.user_nicename
这对我有用:
SELECT a.ID, a.user_login
FROM wp_users a
JOIN wp_usermeta b ON a.ID = b.user_id
WHERE b.meta_key = 'wp_capabilities' and b.meta_value like '%contributor%'
ORDER BY a.user_nicename
如果你想获取其他元信息,你可以使用子查询,记住子查询越多,整体查询速度就越慢。
SELECT
ID,
user_email,
(SELECT `meta_value` FROM wp_usermeta WHERE wp_usermeta.user_id=wp_users.ID AND `wp_usermeta`.`meta_key` = 'first_name') as first_name,
(SELECT `meta_value` FROM wp_usermeta WHERE wp_usermeta.user_id=wp_users.ID AND `wp_usermeta`.`meta_key` = 'last_name') as last_name,
user_registered
FROM wp_users
JOIN wp_usermeta ON wp_usermeta.user_id = wp_users.ID
WHERE `meta_value` LIKE '%subscriber%';
SELECT id,
user_email,
(SELECT meta_value
FROM wp_usermeta
WHERE wp_usermeta.user_id = wp_users.id
AND wp_usermeta.meta_key = 'first_name') AS first_name,
(SELECT meta_value
FROM wp_usermeta
WHERE wp_usermeta.user_id = wp_users.id
AND wp_usermeta.meta_key = 'last_name') AS last_name,
user_registered
FROM wp_users
JOIN wp_usermeta
ON wp_usermeta.user_id = wp_users.id
WHERE meta_value LIKE '%subscriber%'
我的 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
任何人都可以帮助我吗?
我不熟悉 WordPress 的内部结构,但我可以告诉你,你的 LIKE
说法可能是错误的。 LIKE 参数中没有 implicit/automatic 通配符,因此您所拥有的(没有通配符)与使用 =
基本相同。 IE。你可能想要:
'wp_usermeta'.meta_value LIKE '%subscriber%'
我得到了问题的答案:
SELECT wp_users.ID, wp_users.user_nicename
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 wp_users.user_nicename
如果有人遇到同样的问题,请使用我上面的 SQL 查询。
您可以使用:
$user_query = new WP_User_Query( array( 'role' => 'Subscriber' ) );
@qqruza 的回答略有不同,其中包括用户的电子邮件和角色以及所有角色的 returns 用户。
SELECT wp_users.ID, wp_users.user_nicename, wp_users.user_email, wp_usermeta.meta_value
FROM wp_users
JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id
WHERE wp_usermeta.meta_key = 'wp_capabilities'
ORDER BY wp_users.user_nicename
这对我有用:
SELECT a.ID, a.user_login
FROM wp_users a
JOIN wp_usermeta b ON a.ID = b.user_id
WHERE b.meta_key = 'wp_capabilities' and b.meta_value like '%contributor%'
ORDER BY a.user_nicename
如果你想获取其他元信息,你可以使用子查询,记住子查询越多,整体查询速度就越慢。
SELECT
ID,
user_email,
(SELECT `meta_value` FROM wp_usermeta WHERE wp_usermeta.user_id=wp_users.ID AND `wp_usermeta`.`meta_key` = 'first_name') as first_name,
(SELECT `meta_value` FROM wp_usermeta WHERE wp_usermeta.user_id=wp_users.ID AND `wp_usermeta`.`meta_key` = 'last_name') as last_name,
user_registered
FROM wp_users
JOIN wp_usermeta ON wp_usermeta.user_id = wp_users.ID
WHERE `meta_value` LIKE '%subscriber%';
SELECT id,
user_email,
(SELECT meta_value
FROM wp_usermeta
WHERE wp_usermeta.user_id = wp_users.id
AND wp_usermeta.meta_key = 'first_name') AS first_name,
(SELECT meta_value
FROM wp_usermeta
WHERE wp_usermeta.user_id = wp_users.id
AND wp_usermeta.meta_key = 'last_name') AS last_name,
user_registered
FROM wp_users
JOIN wp_usermeta
ON wp_usermeta.user_id = wp_users.id
WHERE meta_value LIKE '%subscriber%'