我正在处理需要地址信息的用户注册表。
我有一张表,其中有大约120万个国家/州/州/邮政编码,涵盖了整个世界。
鉴于某个国家/地区,我想选择该国家/地区的所有州。使用以下查询和“美国”作为示例查询,我得到大约49,000条记录,我只想要50 ...每个州一个!)
SELECT state FROM locales WHERE country='US'
结果如下:
Alaska
Alaska
Alaska
Alaska
Alaska
代表:
Akutan, Alaska
Cold Bay, Alaska
False Pass, Alaska
King Cove, Alaska
Sand Point, Alaska
我只想要一个阿拉斯加州,一个科罗拉多州,一个格鲁吉亚......
同样地,给定一个州我想选择该州的所有城市并给予一个城市,该城市的所有拉链。
我如何编写查询来限制此问题,如何设置指标以优化这些查询?
答案 0 :(得分:1)
使用DISTINCT限制重复条目。
SELECT DISTINCT state FROM locales WHERE country='US'
答案 1 :(得分:1)
DISTINCT将帮助您:
SELECT DISTINCT state FROM locales WHERE country='US'
答案 2 :(得分:0)
SELECT DISTINCT state FROM locales WHERE country='US' LIMIT 50;
给定一个州我想选择该州的所有城市并给予一个城市,该城市的所有拉链。 再假设您只需要50个列表(如果您想要所有其他人,请删除LIMIT 50): 并使用表中的相应列名替换下面的字段。
SELECT DISTINCT state, city, zip FROM locales WHERE country='US' LIMIT 50;
如果你想要前50个州的城市和邮编列表:
SELECT state, city, zip FROM locales WHERE country='US' and state in (SELECT DISTINCT state FROM locales WHERE country='US' LIMIT 50);
答案 3 :(得分:0)
使用此限制
SELECT DISTINCT state FROM locales WHERE country ='US'LIMIT 0,50