如何用MySQL语句合并两列并生成唯一地点列表?
最优解决方案:用UNION实现去重合并
这问题我太懂了!要把town和region两列合并成唯一的地点列表,UNION就是最直接高效的选择——它本身就自带去重逻辑,比先UNION ALL再套DISTINCT要更优,因为不需要先把所有重复数据都拉出来再做去重操作。
直接用这条SQL语句就行:
SELECT town AS location FROM your_table UNION SELECT region AS location FROM your_table;
为啥这方法最好?
UNION会自动合并两个查询的结果集,并且自动剔除重复值,完美满足你要Camden和Greater London各出现一次的需求- 对比
UNION ALL + DISTINCT,UNION在执行时会更早地处理去重,性能更优,尤其是数据量较大的时候
用你给的示例数据测试,执行后会得到这样的结果:
location --------- Camden Greater London
小提示:如果你的表数据量不小,给town和region这两列加上普通索引,能让这个合并查询的速度更快哦~
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

