首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mysql上显示单个结果

在mysql上显示单个结果
EN

Stack Overflow用户
提问于 2016-04-11 21:32:55
回答 2查看 51关注 0票数 0

如何使用这段代码只能得到一个结果?我试着数一数我们能在桌子上找到每一个“双”的次数。db连接没有什么问题,它只得到重复的值。谢谢。

代码语言:javascript
运行
复制
The output should be like

    DOUBLE       COUNT
    01 02          10 (as example)
    03 04          12 (as example)

    I am getting duplicated like...

    01 02          10 (as example)
    01 02          10 (as example)


<?php

if ($check == 'doubles'){

   sort($doubles);

   foreach ($doubles as $double) {

        explode(" ", $double);

        $dn1 = $double[0].$double[1];
        $dn2 = $double[2].$double[3];

if ($stmt = $post_con->prepare('SELECT DISTINCT FROM tb WHERE CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %") AND CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %")')) {

       $stmt->bind_param("ss", $dn1, $dn2);

       $dn1 = sprintf('%02d', $dn1);
       $dn2 = sprintf('%02d', $dn2);

       $stmt->execute();
       $stmt->store_result();
       $qty = $stmt->num_rows;

       echo '<div class="mini">'.$dn1.'</div>';
       echo '<div class="mini">'.$dn2.'</div>';
       echo '<div class="n-sort">'.$qty.'</div>';


        }


}
?>
EN

回答 2

Stack Overflow用户

发布于 2016-04-11 21:43:00

若要计数重复项,请使用以下查询:

代码语言:javascript
运行
复制
SELECT count(1) FROM (
SELECT res, Count(1)
FROM tb 
WHERE CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %") --I don't know did you need this conditions... 
AND CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %")
GROUP BY res
HAVING Count(1) > 1)

编辑:

如果您尝试重复列表,那么:

代码语言:javascript
运行
复制
SELECT res, Count(1)
FROM tb 
WHERE CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %") --I don't know did you need this conditions... 
AND CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %")
GROUP BY res
HAVING Count(1) > 1
票数 0
EN

Stack Overflow用户

发布于 2016-04-11 21:43:16

使用distinct将返回整个表中的所有不同行,但如果存在多个唯一行,则将返回每一行。

您想要的是使用像COUNT(*)这样的聚合函数来计算与您的条件相匹配的行数。

代码语言:javascript
运行
复制
SELECT 
    COUNT(*) 
FROM tb 
WHERE 
    CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %") AND 
    CONCAT(" ", res, " ") LIKE CONCAT("% ", ?, " %")

这将返回与WHERE条件匹配的行数。

如果要查找表中每个双值的次数,可以按双值分组并计数每个组。例如:

代码语言:javascript
运行
复制
SELECT 
    res,
    COUNT(*) 
FROM tb 
GROUP BY
    res

我很难回答这个问题,因为我不确定表中有哪些字段,res是什么,以及您感兴趣的双值在哪里发挥作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36559645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档