gpt4 book ai didi

mysql - wordpress query_posts 查看元信息

转载 作者:行者123 更新时间:2023-11-29 14:51:10 24 4
gpt4 key购买 nike

我希望使用 query_posts 运行查询,以便查看元字段。我之前已经这样做过一次并达到了我想要的结果,但现在由于某种原因在方程中添加一个额外的字段不会返回任何结果。

下面的查询返回所有附件,其中lottery_year等于$y,显然$y 可以是 2011 或更早版本。

现在,我的下一步是引入另一个名为 photo_techniquemeta_field 并为其赋予一个值。

请问,我该怎么做?

$querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
WHERE ($wpdb->postmeta.meta_key = 'lottery_year' AND $wpdb->postmeta.meta_value = $y)
AND $wpdb->posts.post_type = 'attachment'
ORDER BY $wpdb->postmeta.meta_value ASC
LIMIT 100
";

最佳答案

如果您想显示包含 lottery_year = $y()photo_technique = $x 的帖子,您可以使用:

$querystr = "
SELECT $wpdb->posts.*
FROM $wpdb->posts
LEFT JOIN $wpdb->postmeta ON ($wpdb->posts.ID = $wpdb->postmeta.post_id)
WHERE ($wpdb->postmeta.meta_key = 'lottery_year' AND $wpdb->postmeta.meta_value = $y) OR ($wpdb->postmeta.meta_key = 'photo_technique' AND $wpdb->postmeta.meta_value = $x)
AND $wpdb->posts.post_type = 'attachment'
ORDER BY $wpdb->postmeta.meta_value ASC
LIMIT 100
";
<小时/>

编辑

如果您想显示同时具有 lottery_year = $y ( AND ) photo_technique = $x 的结果,您可以使用以下命令查询:

$querystr = "
SELECT
$wpdb->posts.*
FROM
$wpdb->posts
INNER JOIN $wpdb->postmeta ON
$wpdb->posts.ID = $wpdb->postmeta.post_id
AND $wpdb->postmeta.meta_key IN ( 'lottery_year', 'photo_technique' )
AND $wpdb->postmeta.meta_value IN ( '$y', '$x' )
WHERE $wpdb->posts.post_type = 'attachment'
GROUP BY $wpdb->posts.ID
HAVING COUNT(1) = 2
ORDER BY $wpdb->postmeta.meta_value ASC
LIMIT 100
";
<小时/>

编辑

在某些情况下,最后一个查询(AND 查询)会失败。例如你想要lottery_year = $y AND photo_technique = $x,但它也会返回 $x 和 $y 切换的结果,如下所示:lottery_year = $x AND photo_technique = $y ,这实际上取决于您何时可以依赖它,例如您是否有一种称为“2001”的 photo_technique(女巫也可以作为 lottery_year 传递)。请小心谨慎,或者在 dba.stackexchange.com 或 wordpress.stackexchange.com 上提出此问题。

关于mysql - wordpress query_posts 查看元信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5713217/

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