下面我在名为foodBasket
的表上有一个基本的SQL查询。这个表有三个字段。最重要的字段是type
和details
。有没有办法可以在一个字段中计算项目?例如,type
= Veggies
有details
= 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')
答案 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
如果详细信息不为空,则对逗号进行计数,如果详细信息不为空或为空,则会在字段中显示项目数。
答案 1 :(得分:0)
我建议使用array()
,使用http://php.net/array_count_values