MySQL DISTINCT:去重(过滤重复数据)

  • Post author:
  • Post category:mysql


在使用 MySQL SELECT 语句查询数据的时候返回的是所有匹配的行。

例如,查询 tb_students_info 表中所有 age 的执行结果如下所示。


  1. mysql> SELECT age FROM tb_students_info;

  2. +------+

  3. | age |

  4. +------+

  5. | 25 |

  6. | 23 |

  7. | 23 |

  8. | 22 |

  9. | 24 |

  10. | 21 |

  11. | 22 |

  12. | 23 |

  13. | 22 |

  14. | 23 |

  15. +------+

  16. 10 rows in set (0.00 sec)

可以看到查询结果返回了 10 条记录,其中有一些重复的 age 值,有时出于对数据分析的要求,需要消除重复的记录值。这时候就需要用到 DISTINCT 关键字指示 MySQL 消除重复的记录值,语法格式为:


  1. SELECT DISTINCT <字段名> FROM <表名>;

【实例】查询 tb_students_info 表中 age 字段的值,返回 age 字段的值且不得重复,输入的 SQL 语句和执行结果如下所示。


  1. mysql> SELECT DISTINCT age

  2. -> FROM tb_students_info;

  3. +------+

  4. | age |

  5. +------+

  6. | 25 |

  7. | 23 |

  8. | 22 |

  9. | 24 |

  10. | 21 |

  11. +------+

  12. 5 rows in set (0.11 sec)

由运行结果可以看到,这次查询结果只返回了5条记录的 age 值,且没有重复的值。



版权声明:本文为unbelievevc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。