programing

역할 구독자를 가진 사용자를 가져오기 위한 SQL 쿼리

megabox 2023. 9. 11. 21:35
반응형

역할 구독자를 가진 사용자를 가져오기 위한 SQL 쿼리

역할 구독자를 가진 사용자를 확보할 수 있는 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

누가 도와줄 수 있습니까?

저는 제 질문에 대한 답을 얻었습니다.

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 쿼리를 이용해 주시기 바랍니다.

여기 사용자의 이메일과 역할을 포함하고 모든 역할에 대해 사용자를 반환하는 @qruza의 답변을 약간 변형한 것이 있습니다.

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

WordPress 다중 사이트를 설치한 경우 모든 하위 사이트에 대한 역할을 얻으려면 다음을 사용합니다.

SELECT wp_users.ID, wp_users.user_nicename, wp_users.user_email, wp_usermeta.meta_key, wp_usermeta.meta_value 
     FROM wp_users 
     JOIN wp_usermeta ON wp_users.ID = wp_usermeta.user_id 
     WHERE wp_usermeta.meta_key LIKE 'wp_%capabilities'
     ORDER BY wp_users.user_nicename

물론, 당신은 그것을 볼 필요가 있을 것입니다.wp_usermeta.meta_key레코드가 적용되는 하위 사이트(site)를 결정하는 값입니다.

효과가 있었습니다.

     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

WordPress 내부 구조에 대해서는 잘 모르지만, 당신의LIKE문장이 틀렸을 수도 있습니다.LIKE 인수에는 암시적/자동 와일드카드가 없으므로 사용자가 가지고 있는 것(와일드카드가 없음)은 기본적으로 다음을 사용하는 것과 같습니다.=. 즉, 당신은 아마도 다음을 원할 것입니다.

'wp_usermeta'.meta_value LIKE '%subscriber%'

다음을 사용할 수 있습니다.

$user_query = new WP_User_Query( array( 'role' => '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%';
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%' 

언급URL : https://stackoverflow.com/questions/28618463/sql-query-to-get-users-with-role-subscriber

반응형