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

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

我想在Mysql 5.1上使用innodb为上面的菜单项value(148)(假设为148-400)选择一个唯一值的计数,这样输出如下:
val    count
148    5
101    4
152    1

整数值(148101152)不存在于列中,更不愿意循环。
有什么办法吗?似乎需要为“148”创建一个变量的概念,然后创建一个分组,但有点不清楚。
谢谢

最佳答案

我想你们所有的路径都是一样的。

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

它看起来很管用,但我担心在大桌子上的表现。做些测试。
你能用这个值加一个字段吗?我想会更好。

关于mysql - sql按char(255)字段的子字符串中的值进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7100508/

10-13 00:58