如何消除MySQL中的重复行?

如何消除MySQL中的重复行?,mysql,localhost,duplicate-removal,Mysql,Localhost,Duplicate Removal,即使在以selectdistinct STATES的形式运行查询之后,我也会得到重复的查询 这就是问题所在 SELECT COUNT(*) AS `Rows`, `STATE` FROM `bank_database` GROUP BY `STATE` ORDER BY `STATE` LIMIT 100 这是输出 我需要 63 ANDAMAN AND NICOBAR ISLAND 7311 ANDHRA PRADESH 150 ARUNACHAL PRADES

即使在以
selectdistinct STATES
的形式运行查询之后,我也会得到重复的查询

这就是问题所在

SELECT COUNT(*) AS `Rows`, `STATE` FROM `bank_database` GROUP BY `STATE` ORDER BY `STATE` LIMIT 100
这是输出

我需要

 63      ANDAMAN AND NICOBAR ISLAND
 7311    ANDHRA PRADESH
 150     ARUNACHAL PRADESH
 ...
 and so on
这是我的数据库结构。

救命啊。 提前谢谢

我有这个疑问

SELECT DISTINCT BRANCH FROM `BANK`.`BANK_DATABASE` WHERE (BANK = '$bank_name' AND STATE = '$state_name' AND DISTRICT = '$district_name')"
UPDATE BANK_DATABASE
SET STATE = TRIM(TRAILING '\r' FROM STATE)
WHERE STATE = TRIM(TRAILING '\n' FROM STATE)

上述查询对于某些银行是正确的,而对于某些银行则是失败的。

试试这个,一定有一些空格

     SELECT COUNT(*) AS `Rows`, trim(STATE) FROM `bank_database` 
     GROUP BY  trim(STATE)  
     ORDER BY trim(STATE) LIMIT 100
如果工作正常,请运行此查询以修复数据问题

 update tableName set state =  trim(state);

数据真的不一样吗?数据中有一个空格

'ANDAMAN AND NICOBAR ISLAND' != 'ANDAMAN AND NICOBAR ISLAND space'  

您可以使用
COUNT(DISTINCT*)
这将只计算不同的值

通过此查询,我能够解决上述
数据异常

SELECT DISTINCT BRANCH FROM `BANK`.`BANK_DATABASE` WHERE (BANK = '$bank_name' AND STATE = '$state_name' AND DISTRICT = '$district_name')"
UPDATE BANK_DATABASE
SET STATE = TRIM(TRAILING '\r' FROM STATE)
WHERE STATE = TRIM(TRAILING '\n' FROM STATE)

不管怎样,谢谢大家

看起来
状态
值存在差异。尝试使用
按修剪分组(状态)
看起来在某些状态上有一些空白字符。请先尝试此操作,然后运行查询,查看结果。@AbhikChakraborty trim没有影响。我试过<代码>0行受影响。(查询耗时0.5445秒)您能将其上传到SQLFIDLE上吗?理想情况下,上面的
update
语句应该考虑所有空格字符,但奇迹般的是,它没有影响我的数据库。我的数据本身有一些不规则的地方。不规则?我可以知道它们是什么意思吗?
null
或者有些甚至将
#NAME
#STATE
作为数据而不是实际数据。我试图使SQL成为FIDLE,但我有122846行,所以无法。