gpt4 book ai didi

php - 带有 DISTINCT 关键字的 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 04:11:29 25 4
gpt4 key购买 nike

我的 MySQL 表 country_phone_codes 看起来像这样

id     country_code     area_code     name
------------------------------------------------------------
1 | 93 | 93 | AFGHANISTAN
2 | 93 | 9370 | AFGHANISTAN - MOBILE
3 | 93 | 9375 | AFGHANISTAN - MOBILE
4 | 355 | 355 | ALBANIA
5 | 355 | 35568 | ALBANIA - MOBILE - AMC
6 | 213 | 213 | ALGERIA
7 | 213 | 2131 | ALGERIA - CAT
------------------------------------------------------------

这些只是 28000 多条记录中的一小部分。我正在尝试制定一个查询,为我提供这样的结果-

country_code    name
-----------------------------
93 | AFGHANISTAN
355 | ALBANIA
213 | ALGERIA
-----------------------------

通过使用 SELECT DISTINCT(country_code) FROM country_phone_codes ORDER BY country_code LIMIT 0,260,我能够获得不同的国家代码。但是如何获取相应的国家/地区名称?

最佳答案

答案很简单,使用 GROUP BY:

SELECT country_code,MIN(name)
FROM country_phone_codes
GROUP BY country_code;

DISTINCT 函数和 ORDER BY 对于 GROUP BY 不是必需的。由于最初的问题专门与 MySQL 相关,因此 MIN() 聚合函数不是必需的,如果满足以下所有条件,则没有它您可能会看到更好的性能:

  • 服务器是MySQL
  • 存储引擎是InnoDB
  • 示例数据的第一列是主键,条目遵循小样本建议的相同顺序,即国家/地区名称出现在组中所有其他名称之前。

这是有效的,因为 InnoDB 存储引擎将按主键的顺序扫描,对于非聚合列,它将使用它找到的第一个值。

关于php - 带有 DISTINCT 关键字的 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9596806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com