Mysql 选择不同的值

Mysql 选择不同的值,mysql,sql,Mysql,Sql,我有一个非常大的数据库表,有超过500k行。表包含邮政地址: USERID, ADDRESS, CITY, COUNTY, ZIP , COUNTRY .... 我需要从表中获取一个国家的唯一县名称,因此我尝试: SELECT DISTINCT `county` FROM `addressess` WHERE `country` = 'USA' AND `county` LIKE '%al%' ESCAPE '!' 但它给我回了相同的县名,所以我尝试了下一步的distanct SELECT

我有一个非常大的数据库表,有超过500k行。表包含邮政地址:

USERID, ADDRESS, CITY, COUNTY, ZIP , COUNTRY .... 
我需要从表中获取一个国家的唯一县名称,因此我尝试:

SELECT DISTINCT `county`
FROM `addressess`
WHERE `country` = 'USA'
AND `county` LIKE '%al%' ESCAPE '!'
但它给我回了相同的县名,所以我尝试了下一步的distanct

SELECT DISTINCT `county`
FROM `addressess`
WHERE `country` = 'USA'
AND `county` LIKE '%al%' ESCAPE '!'
GROUP BY `county`
还是同一个问题,这个查询缺少什么(不需要escape子句和单引号):

返回不同的名称。
groupby
也做同样的事情<使用
groupby
,几乎不需要使用code>selectdistinct;在这种情况下,两者一起执行的操作与单独执行的操作相同

如果两个名字看起来一样,那并不意味着它们是一样的。可能有尾随空格或其他隐藏字符。您可以添加
length(county)
char\u length(county)
以查看长度是否相同,以及看到的字母数是否与函数返回的字母数匹配


如果没有示例数据或SQL FIDLE,就很难提供更多指导。

下面的SQL足以生成不同的县:

SELECT DISTINCT county FROM addressess WHERE country = 'USA' AND county LIKE '%al%'; 选择不同的县 发信人 其中国家='USA'和县,如'%al%';
MySQL不支持500k列。大概你的意思是“行”。我在上面给出了一个伪示例,在阅读了你的评论后,我认为它可能有一些空间,所以为了确保我尝试了这个查询>UPDATE zips set country=TRIM(country);查询确定,0行受影响(0.47秒)行匹配:457040更改:0警告:0并再次执行我的搜索,但问题相同 SELECT DISTINCT county FROM addressess WHERE country = 'USA' AND county LIKE '%al%';