在我的 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 BY
以asc
或desc
顺序排列内容
【讨论】:
非常感谢,起初它不起作用,但我忘记将其余的搜索功能更改为 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 中包含它?