Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
在MySQL中找到重复的行,这个查询应该会失败,但它会返回一些东西:什么?_Mysql - Fatal编程技术网

在MySQL中找到重复的行,这个查询应该会失败,但它会返回一些东西:什么?

在MySQL中找到重复的行,这个查询应该会失败,但它会返回一些东西:什么?,mysql,Mysql,在Oracle中,它会失败,因为hr_descr2有十几个列,所以查询是无效的,但在MySQL上,它会返回一个结果集,但不是我期望的结果集。我认为它类似于第二个查询返回的结果集,但它更像是一个select* select * from hr_descr2 ds2 group by ds2.titolo having count(1) > 1 order by titolo; select titolo, count(1) from hr_descr2 ds2 group by ds2.t

在Oracle中,它会失败,因为hr_descr2有十几个列,所以查询是无效的,但在MySQL上,它会返回一个结果集,但不是我期望的结果集。我认为它类似于第二个查询返回的结果集,但它更像是一个select*

select *
from hr_descr2 ds2
group by ds2.titolo
having count(1) > 1
order by titolo;

select titolo, count(1)
from hr_descr2 ds2
group by ds2.titolo
having count(1) > 1
order by titolo;
我希望查询能够做到这一点:

SELECT 
    *
FROM
    hr_descr2
WHERE
    titolo IN (SELECT 
            titolo
        FROM
            hr_descr2 ds2
        GROUP BY ds2.titolo
        HAVING COUNT(1) > 1)
ORDER BY titolo;

由于您指示第一个查询可以工作,因此我将假定
hr_descr2
表只有一列:
titolo
。否则,它将抛出一个错误,因为与
group by
一起使用的是非聚合值


因此,它返回一个不同的
titolo
值列表,这些值是重复的,并告诉您它们发生了多少次。

也许您可以告诉我们您希望它做什么?对我来说:
从表
hr\u descr2
中选择属性(?)
ds2
,按列
ds2进行分组。titolo
包含多个
1
,按
titolo
@Jonast92排序:添加了预期行为,但我想知道的是:mysql的创建者预期做什么。。。在oracle中不是有效的queryNo!这就是奇怪的事情。这张桌子有十几根柱子。该查询不应该工作,但我发现它只从每个重复记录中的一个打印每个值。请尝试不要使用
select*
。精确地指定您想要的内容。