나는 이런 식으로 저자를 얻고 있습니다.
$feat_authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY rand() LIMIT 3");
하지만 별도의 데이터베이스 테이블을 확인하고 싶습니다. 해당 값 이 관련 ID (첫 번째 테이블의 user_id 및 ID 일치)에 대해 비어 있지 않거나 null이 아닌지 확인 wp_usermeta
하는 필드 meta_key='description'
가 있습니다 .
wp_usermeta
수율 선택 및 인쇄 :
Array
(
[0] => stdClass Object
(
[umeta_id] => 19
[user_id] => 2
[meta_key] => first_name
[meta_value] => Rita
)
[1] => stdClass Object
(
[umeta_id] => 20
[user_id] => 2
[meta_key] => last_name
[meta_value] => Santos
)
[2] => stdClass Object
(
[umeta_id] => 21
[user_id] => 2
[meta_key] => nickname
[meta_value] => rita
)
[3] => stdClass Object
(
[umeta_id] => 22
[user_id] => 2
[meta_key] => description
[meta_value] => I’m the coolest person in Uniplaces. I also post stuff on Facebook and other social networks.
)
그리고 나는 이것을 시도했는데, 나는 모든 빈 설명을 제공합니다. SELECT * FROM wp_usermeta WHERE meta_key = 'description' AND meta_value = ''
그러나 첫 번째 쿼리에서 두 번째 테이블의 설명이 비어 있거나 null이 아닌 결과 만 얻도록 결합하는 방법을 모르겠습니다. 나를 버리는 또 다른 점은 첫 번째 ID가 다른 이름 (user_id와 반대되는 ID)을 갖기 때문에 두 번째 쿼리로 ID를 가져 오는 방법을 잘 모르겠다는 것입니다.
요청한 내용을 100 % 확신 할 수는 없지만 추가 데이터와 case 문으로 해당 테이블에 조인을 사용할 수 있습니까?
SELECT
ID
, user_nicename
,CASE
WHEN Len([meta_key='description'])>0 THEN 'Some Content'
WHEN Len([meta_key='description'])=0 THEN 'No Content'
WHEN [meta_key='description'] Is Null THEN 'Null'
ELSE 'OTHER'
END AS Category
from $wpdb->users as u
left outer join wp_usermeta as m
ON u.ID=m.user_id
WHERE display_name <> 'admin'
ORDER BY rand()
LIMIT 3
설명이 null이거나 비어있는 사용자 만보고 싶은 경우 :
SELECT
ID
, user_nicename
,[meta_key='description']
from $wpdb->users as u
INNER JOIN wp_usermeta as m
ON u.ID=m.user_id
WHERE
display_name <> 'admin'
AND Len([meta_key='description'])>0
AND [meta_key='description'] IS NOT NULL -- probably not required depending on len() behaviour
ORDER BY rand()
LIMIT 3
또는 사용자 당 두 번째 테이블에 여러 레코드가 있고 meta_key = description을 원합니까?
SELECT
ID
, user_nicename
,meta_value
from $wpdb->users as u
left outer join wp_usermeta as m
ON u.ID=m.user_id
AND meta_key='description'
WHERE
display_name <> 'admin'
AND Len(meta_value)>0
ORDER BY rand()
LIMIT 3
방금 테이블 구조를 간략히 살펴 보았고 옵션 3과 같은 것을 원한다고 생각합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다