sql group by char(255)字段的子字符串中的值

时间:2011-08-17 22:55:04

标签: mysql sql group-by

我有一个名为image_small的列用于表格图像,其中包含以下信息:

image_small
/images/menu_items/148/5a13140f8ef4503f024d06231037c69e_medium.jpg
/images/menu_items/152/5a14444444444444424d06231037c69e_medium.jpg
 ...

我想使用innodb在Mysql 5.1上为上面的菜单项值(148)(假设148-400)选择唯一值的计数,以便输出如下:

val    count  
148    5  
101    4  
152    1  

列中不存在整数值(148,101,152),而不是循环遍历。

关于如何做到这一点的任何想法?似乎需要为'148'创建一个变量的概念,然后创建一个但是有点无能为力的组。

THX

1 个答案:

答案 0 :(得分:1)

我假设你的所有路径都有相同的格式。

 select 
 substring_index(substring_index(str,'/',4),'/',-1) as val,
 count(*)  as `count`
 from table
 group by val

它似乎有用,但我担心大桌上的表现。做一些测试。 你能添加一个有这个值的字段吗?我认为会更好。