我的SQL查询如下:
select CategoryID, Name, count(Name) as C
from Posts
where CategoryID=1101 and Language=1
group by CategoryID
order by C ASC;
我需要获取按名称分组的最短名称,任何想法?
如果没有给出CategoryID(NULL),那么另一件事情就会很好。该组不包括。
答案 0 :(得分:1)
这样可以解决问题:
SELECT
CategoryID,
SUBSTRING_INDEX(GROUP_CONCAT(Name ORDER BY LENGTH(Name)), ',', 1) As s_name,
Count(Name) as C,
FROM
Posts
WHERE
CategoryID=1101 and Language=1
GROUP BY CategoryID
ORDER BY C ASC;
答案 1 :(得分:0)
您可以按length(Name)
排序并限制为1来执行此操作。
select CategoryID, Name, count(Name) as C
from Posts where CategoryID is not null and Language=1
group by CategoryID order by length(Name) asc limit 1;
添加CategoryID IS NOT NULL
以排除NULL
值。