返回MySQL数据库中最小长度的字符串

时间:2011-02-04 05:28:03

标签: mysql string

我有一个名为“Inventory”的表,其中包含Item(varchar),Amount(int),Type(varchar)

字段

我想要提取的是包含以下字段的行:

Type

类型的所有项目的Item字段中的最短条目

类型

的所有项目的所有金额的总和

我有以下内容:

SELECT Item, sum( Amount ) FROM Inventory GROUP BY Type

给出了我想要的东西,除了它没有返回最短的项目,而是它有一个其他项目(我认为它找到的最后一个)。最短的意思是最小字符串长度。

感谢您的帮助。

3 个答案:

答案 0 :(得分:8)

您可以通过子查询获取它。

select type, sum(amount), item 
from inventory 
group by type
having length(item) <= (select min(length(item)) from inventory)

用户Order By columnName ASC /DESC进行排序 和LIMIT 1从中获取一个

答案 1 :(得分:1)

select type, sum(amount), min(length(item)) from inventory group by type

应该做你想做的事情

答案 2 :(得分:0)

不知道应该去哪里,所以我正在创建一个新答案:

select e.type, min_item.s, e.item from inventory e inner join (select e2.type, sum(e2.amount) as s, e2.item, min(length(e2.item)) as bb from inventory e2 group by e2.type) min_item on (length(e.item)=min_item.bb) group by e.type;

我对此进行了测试,但确实有效。

相关问题