在我的 Mysql 语句中包含 GROUP BY id

Posted

技术标签:

【中文标题】在我的 Mysql 语句中包含 GROUP BY id【英文标题】:Include GROUP BY id In my Mysql Statement 【发布时间】:2015-02-15 13:39:55 【问题描述】:

我已经实施了一个过滤表的解决方案,但它也让我失去了我想要的主要功能之一。 GROUP BY ID DESC,所以最新的发布在顶部。

第一次查看没有任何过滤器的表格时,我希望它也是 GROUP BY ID DESC 但过滤器的设置方式我无法做到。有什么办法可以解决吗?我的代码在下面

<?php 
// Check connection
require '../inc/connection.php';
//Select All from Game
$result_else = "SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE ";

//Search Function
if (isset($_POST['search'])) 
$search_term = mysqli_real_escape_string($con, $_POST['search_box']);   
$result_else .= "AND Region LIKE'%$search_term%'";
$result_else .= "OR gameType LIKE'%$search_term%' GROUP BY id DESC LIMIT 25";


?>

如果我希望没有任何过滤器的表的原始视图具有 GROUP BY ID DESC LIMIT 25,该怎么做?

感谢您的帮助

【问题讨论】:

使用任何聚合方法时都需要分组。 【参考方案1】:

可以,可以

$result_else = "SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE ";

//Search Function
if (isset($_POST['search'])) 
    $search_term = mysqli_real_escape_string($con, $_POST['search_box']);   
    $result_else .= "AND Region LIKE'%$search_term%'";
    $result_else .= "OR gameType LIKE'%$search_term%' ";

// $result_else .= "GROUP BY id DESC LIMIT 25";
$result_else .= "ORDER BY id DESC LIMIT 25";

但不确定您要的是GROUP BY 还是ORDER BY

GROUP BY 对内容进行分组。

ORDER BYascdesc 顺序排列内容

【讨论】:

非常感谢,起初它不起作用,但我忘记将其余的搜索功能更改为 AND 而不是 where。这样做是否有效,因为它总是添加 $result_else .= "Order by... 在第一个结果之后 else 也运行了 if isset ?【参考方案2】:

也许对你有帮助:

<?php
// Check connection
require '../inc/connection.php';
//Select All from Game
$result_else = "SELECT * FROM game WHERE listDate >= NOW() - INTERVAL 1440 MINUTE ";

//Search Function
if (isset($_POST['search'])) 
    $search_term = mysqli_real_escape_string($con, $_POST['search_box']);
    $result_else .= " AND Region LIKE'%$search_term%'";
    $result_else .= " OR gameType LIKE'%$search_term%' GROUP BY id DESC";

$result_else .= " ORDER BY id LIMIT 25";

?>

【讨论】:

以上是关于在我的 Mysql 语句中包含 GROUP BY id的主要内容,如果未能解决你的问题,请参考以下文章

带有 LEFT JOIN 和 GROUP BY 的 COUNT(*) 在 MySQL 中包含 NULL

如何在 SELECT 部分中包含 BIT 类型列而不在 T-SQL 中的 GROUP BY 中包含它?

问题:only_full_group_by

如何在 Entity Framework Group By 结果中包含属性

GROUP BY 子句并在查询中包含非聚合列

SELECT list is not in GROUP BY clause and contains