查询所有项目并忽略条件

时间:2013-09-14 01:25:39

标签: php mysql foreach

我目前有两个函数在我的数据库上执行查询;第一个对我的所有条目执行查询,第二个有规范(用于版本控制)。

数据库 - >的编辑

id | version_id | post_id
-------------------------
1  |    1       |   1
2  |    2       |   2
3  |    1       |   1
4  |    1       |   1

代码 - >的编辑

public function post($postid)
{
    global $db;
    $query = "SELECT * FROM news";
    return $db->select($query);
}
public function version_count()
{
    global $db;
    $query = "SELECT * FROM news WHERE post_id='1' ORDER BY version_id DESC LIMIT 1";
    return $db->select($query);
}

为了显示我的参赛作品,我尝试了以下内容,按预期进行,给我所有参赛作品:

$posts_array = $query->post($post);
foreach ( $counted_versions as $post )
{
    echo $post->id . "-";
}

但是,我只想回显第2行和第4行,因为2是唯一的,4是最新的。

起初,我认为这种逻辑可行:

$posts_array = $query->post($post);
$counted_versions  = $query->version_count();

foreach ( $counted_versions as $counted )
{
    foreach ( $posts_array as $post )
    {
        echo $post->id . "-";
    }
}

相反,我得到1-2-3-4-如果我切换我的foreach循环,我得到4-4-4-4-,而我希望2-4或至少1-4({}或4-24-1)。

有人有办法得到类似的结果吗?

1 个答案:

答案 0 :(得分:0)

如果您希望每个id获得最高post_id,请使用以下查询:

SELECT post_id, MAX(id) max_id
FROM news
GROUP BY post_id