如何消除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行,所以无法。