Here is a semi simplistic way to count distinct fruits (total number of fruits) .
SELECT COUNT(DISTINCT LEFT(`name`, LOCATE("Color:", `name`)-1)) as total_fruits
FROM exampe_table;
to be honest you want to normalize your database.. you can add another table to match colors or even redo this table and add another column. this would be a simplistic way of doing that
CREATE TABLE fruits_n_colors
(`id` int, `name` varchar(255), `color` varchar(255))
SELECT id,
SUBSTRING_INDEX(Name, ' Color: ', 1) as name,
SUBSTRING_INDEX(Name, ' Color: ', -1) as color
FROM exampe_table
ORDER BY id;
DEMO
on a side note if you would like to keep your current table then you can alter it and then update like so
ALTER TABLE exampe_table
ADD COLUMN `fruit` VARCHAR(55),
ADD COLUMN `color` VARCHAR(55);
UPDATE exampe_table et,
(
SELECT
id,
SUBSTRING_INDEX(Name, ' Color: ', 1) AS fruit,
SUBSTRING_INDEX(Name, ' Color: ', -1) AS color
FROM exampe_table
)t
SET et.fruit = t.fruit, et.color = t.color WHERE et.id = t.id;
ALTER TABLE exampe_table
DROP COLUMN `Name`;
ANOTHER DEMO