distinct *表示你查询的所有字段的过滤重复比如你有两行数据1 白菜类 白菜12 白菜类 白菜2这两行数据,肯定是不相同的,所以select distinct *,一定会把两行数据都查出来。只是你显示的时候,只显示了类别这一项,所以把不重复的数据给掩盖了而已。按照你这个显示,你应该select distinct 字段 FROM TABLE这样来做。