计算mysql表中找到的值内的项目

时间:2014-02-24 19:16:10

标签: mysql sql database

下面我在名为foodBasket的表上有一个基本的SQL查询。这个表有三个字段。最重要的字段是typedetails。有没有办法可以在一个字段中计算项目?例如,type = Veggiesdetails = Broccoli, Carrots, Lettuce, Celery。我想为4的详细信息返回一个数值,它代表所有项目。 SQLFIDDLE

CREATE TABLE foodBasket
    (
     id int auto_increment primary key, 
     type varchar(100), 
     details varchar(100)
    );

INSERT INTO foodBasket
(type, details)
VALUES
('Veggies', 'Broccoli, Carrots, Lettuce, Celery'),
('Fruits', 'Bannana, Apple, Orange, Guava')

2 个答案:

答案 0 :(得分:1)

您应该规范化您的数据库,只有当您无法修改数据库时,您可以这样做:

    select id, type, details,
    case details when null then 0 
    when '' then 0
    else
    (LENGTH(details) - LENGTH(replace(details, ',', '')) +1) 
    end
as details_count
    from foodBasket

如果详细信息不为空,则对逗号进行计数,如果详细信息不为空或为空,则会在字段中显示项目数。

这是sqlfiddle

答案 1 :(得分:0)

我建议使用array(),使用http://php.net/array_count_values

计算其所有项目