MySQL 如何根据条件对字段去重:如何区分境内外记录并获取唯一域名?

mysql 如何根据条件对字段去重:如何区分境内外记录并获取唯一域名?

mysql 中根据条件对字段去重:境内境外区分

问题:在一个表中,需要按照 domain 字段去重,但同时区分 loc 字段中的境内和境外记录。例如,表中有以下数据:

domain   loc
a.org    华北联通
b.org    华北联通
b.org    华东电信
c.org    西南电信
c.org    西南移动 
c.org    华东移动
d.org    华中电信
d.org    西北联通
e.org    境内 
f.org    境外

需要得到以下结果:

domain   loc
a.com    西南连通
a.com    境外
b.com    西北电信
c.com    西南电信

解决方案:

mysql 中,可以使用 union all 语句来实现上述需求:

SELECT DISTINCT domain FROM url WHERE loc = "境外"
UNION ALL
(
  SELECT DISTINCT domain FROM url WHERE loc != "境外"
)

sql 语句首先从表 url 中选择 loc 字段为 "境外" 的所有唯一 domain 值,然后使用 union all 语句将其与选择 loc 字段不等于 "境外" 的所有唯一 domain 值合并。这样一来,最终的结果就包含了所有唯一的 domain 值,并区分了境内和境外记录。

以上就是MySQL 如何根据条件对字段去重:如何区分境内外记录并获取唯一域名?的详细内容,更多请关注其它相关文章!