我需要一些有关查询的帮助来查找特定值的重复行。我尝试了很多查询,但找不到。现在我有这个。
我的sql结构:
id INT(11) NOT NULL AUTO_INCREMENT,
vrijeme TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
pocetni_broj VARCHAR(55) DEFAULT NULL,
zamjenski_broj VARCHAR(55) DEFAULT NULL,
glavni_broj VARCHAR(55) DEFAULT NULL,
postoji_zamjena INT(1) DEFAULT NULL,
PRIMARY KEY (id)
我的查询是:
SELECT *
FROM zamjene_brojeva
GROUP BY glavni_broj
HAVING COUNT(glavni_broj) > 1
这给了我表中所有重复的值。但是如何找到 glavni_broj 列的值为 966 45 19-68 的重复值?我知道 glavni_broj 中有 4 行具有该值。我尝试将Where 放入其中,但查询失败。
有什么想法吗?
最佳答案
所以只需在你想要的地方添加即可。拥有将重新评估,你应该得到你的 4 条记录
SELECT *
FROM zamjene_brojeva
WHERE glavni_broj = '966 45 19-68'
GROUP BY glavni_broj
HAVING COUNT(glavni_broj) > 1
如果您想要所有值,则只会返回一行,然后在列上使用 group_concat() 来查看值
从基本查询开始
SELECT *
FROM zamjene_brojeva
WHERE glavni_broj = '966 45 19-68'
现在,如果返回行,请查看返回的行数。您还可以通过计数来计算出有多少行glavni_broj = '966 45 19-68'
SELECT count(*)
FROM zamjene_brojeva
WHERE glavni_broj = '966 45 19-68'
它将列出 glavni_broj = '966 45 19-68' 的每一行
确保实际上有多于一行以“966 45 19-68”作为值
关于mysql - 特定值上的重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33363090/