반응형
역할 구독자를 가진 사용자를 가져오기 위한 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
반응형
'programing' 카테고리의 다른 글
JAXB: 목록에 있는 물체들을 어떻게 모아야 합니까? (0) | 2023.09.11 |
---|---|
HQL에서 SQL로의 번역을 이해할 수 없습니다. (0) | 2023.09.11 |
명령 프롬프트에서 PowerShell 명령 실행(ps1 스크립트 없음) (0) | 2023.09.11 |
경로가 PowerShell의 폴더 또는 파일인지 확인 (0) | 2023.09.11 |
C와 C++의 Float와 Double의 크기는 어떻게 됩니까? (0) | 2023.09.11 |