【问题标题】:Sql query to show some results using PHP使用 PHP 显示一些结果的 Sql 查询
【发布时间】:2011-08-16 05:54:31
【问题描述】:

最后,我想显示结果的标题,其中 extra1 作为 meta_key,test 作为 meta_value。

我的目标是:

  1. 从表 wp_postmeta 中获取 extra1 作为 meta_keytest 的每一行的 post_id 作为 元值
  2. 使用 post_id,分别获取第 1 步中每一行的 post_title
  3. 打印post_title

非常感谢。

【问题讨论】:

    标签: php sql


    【解决方案1】:

    这是假设您正在处理 wordpress database schema 的查询:

    SELECT post_title
    FROM wp_posts
    WHERE ID IN
    (
       SELECT DISTINCT post_id
       FROM wp_postmeta
       WHERE meta_key = 'extra1' AND meta_value = 'test'
    )
    

    Mairy 评论后的第二次查询:

    SELECT post_title
    FROM wp_posts
    WHERE ID IN
    (
       SELECT DISTINCT post_id
       FROM wp_postmeta
       WHERE meta_key IN('extra1','extra2','extra3') AND meta_value IN('test','test1','test2','test3')
    )
    

    那么你只需要用 php 循环遍历结果集,然后打印你喜欢的帖子标题:

    //connect to DB then ($query contains the query above)
    $res = mysql_query($query, $db);
    while($row=mysql_fetch_array($res))
    {
       echo($row['post_title']);
    }
    

    【讨论】:

    • 非常感谢您!如何使用 AND 编辑它以满足多个 meta_keys 和 meta_values?
    • 我已接受您的回答。谢谢您的帮助。但是我想问一下这是否是一个缓慢的查询。
    • 使用 JOIN 可能会更快。但我想如果你在 meta_key 上设置了正确的索引,它应该运行得很快
    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    相关资源
    最近更新 更多