users WHERE di-6ren">
gpt4 book ai didi

php - 子查询查看同一 id 的单独表中的字段是否为 null 或为空

转载 作者:行者123 更新时间:2023-11-29 12:05:02 27 4
gpt4 key购买 nike

我通过这种方式获取作者:

$feat_authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY rand() LIMIT 3");

但我想检查一个单独的数据库表:wp_usermeta,其中有一个字段meta_key='description',以查看其值是否 关联 ID(user_id 和第一个表匹配中的 ID)不为空或 null

选择并打印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 = ''

但我不确定如何组合它们,以便在第一个查询中我只能得到第二个表中的描述不为空或为空的结果。另一件让我失望的事情是,我不确定如何将 id 传递给第二个查询,因为第一个 id 具有不同的命名(ID 与 user_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

如果您只想查看没有空描述或空描述的用户,则可能:

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 = 描述?

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 之类的内容

关于php - 子查询查看同一 id 的单独表中的字段是否为 null 或为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31655812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com