MySQL:在一组不同的(char_length(text_column))记录中选择最高结果

时间:2015-07-07 22:19:32

标签: mysql distinct

我有一组跟随名义结果的记录。有多次出现重复计数列中的数字。 '计算'来自char_length(text_column)。我想抓住每个这样的分组中的第一条记录。我该怎么做呢?

我查看了char_length()文档并搜索了已完成此操作的示例,但无法找到任何内容。

select distinct(char_length(text_column)), text_column from table

....尽可能接近 - 这显然并不接近 - 因为我已经能够得到结果。

=======+============================
 count +      text_column
=======+============================
2139   + some text entry
-------+----------------------------
3000   + another sentence here
-------+----------------------------
3000   + more text in this sentence
-------+----------------------------
3000   + still more text here
-------+----------------------------

谢谢你, BW

1 个答案:

答案 0 :(得分:1)

除非列指定排序,否则不存在“first”之类的内容。但是,您可以使用group by indeterminate 行获取值:

select char_length(text_column), text_column
from table
group by char_length(text_column);

我不喜欢使用group by的MySQL扩展,其中text_column允许select,而group by不允许min()。但是,因为它是一个很长的列,所以让MySQL选择值而不是使用实际的聚合函数(例如max()或{{1}})可能更有效。