Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何获取php中超过x行的特定列值?_Php_Mysql - Fatal编程技术网

如何获取php中超过x行的特定列值?

如何获取php中超过x行的特定列值?,php,mysql,Php,Mysql,在我的MySQL“purchase”表中,有一列存储用户名,因为每个完成的购买都存储在这里,还有其他详细信息,如购物车id、金额,我想获取用户名中超过10/50/100次购买的内容 我可以获得每个用户的购买记录数,但我想按行数过滤结果。下面是我的查询,用于获取每个用户的记录数 $query = MySQL_query("SELECT user_name, COUNT(*) as count FROM purchase GROUP BY user_name ORDER BY count DESC"

在我的MySQL“purchase”表中,有一列存储用户名,因为每个完成的购买都存储在这里,还有其他详细信息,如购物车id、金额,我想获取用户名中超过10/50/100次购买的内容

我可以获得每个用户的购买记录数,但我想按行数过滤结果。下面是我的查询,用于获取每个用户的记录数

$query = MySQL_query("SELECT user_name, COUNT(*) as count FROM purchase GROUP BY user_name ORDER BY count DESC") or  die(MySQL_error());

谢谢

使用
HAVING
子句

SELECT user_name, 
COUNT(*) as count1 
FROM purchase 
GROUP BY user_name 
HAVING COUNT(*) IN (100, 50, 10)
ORDER BY count1 DESC
(或)使用与此类似的外部选择和筛选

SELECT * FROM
(
SELECT user_name, 
COUNT(*) as count1 
FROM purchase 
GROUP BY user_name ) xx
WHERE count1 IN (100, 50, 10)
ORDER BY count1 DESC

我在while循环中添加了if语句,效果很好。我知道还有很多方法可以达到这个效果。我的代码:

$query = MySQL_query("SELECT user_name, COUNT(*) as count FROM purchase    GROUP BY user_name ORDER BY count DESC") or die(MySQL_error());

while($row = mysql_fetch_array($query))
 {
  $user_name = $row["user_name"];
  $num_rows = $row['count'];
  if($num_rows > '100'){
  echo $user_name."&nbsp;&nbsp;&ndash;&nbsp;&nbsp;".$num_rows."<br>";
 } 
}
$query=MySQL\u query(“按用户名顺序按计数说明选择用户名,计数(*)作为采购组的计数”)或die(MySQL\u error());
while($row=mysql\u fetch\u array($query))
{
$user_name=$row[“user_name”];
$num_rows=$row['count'];
如果($num_rows>'100'){
echo$user_name.&ndash;“$num_行。”
”; } }

这段代码从高到低检索了所有购买量超过100次的用户名

您可以使用sql的HAVING语句。谢谢,你的第一个代码给了我一个用户的结果,他们总共购买了10、50、100次。但我想让购买数量超过x的用户购买。可能是,我的问题可能不太清楚。@user4093,在这种情况下,将条件更改为
>x