Настоятельно рекомендуется использовать другую таблицу оценок Не беспокойтесь о сотнях (или тысячах или десятках тысяч) записей, это все арахис для баз данных.
Предложение:
стол продукты
- id
- имя
- и т. д.
таблица рейтинг продуктов
- id
- productId
- рейтинг
- дата (при необходимости)
- ip (при необходимости, например, для предотвращения двойного рейтинга)
- и т. д.
Получить все оценки товара 1234
:
SELECT pr.rating
FROM products_ratings pr
INNER JOIN products p
ON pr.productId = p.id
AND p.id = 1234
Средняя оценка товара 1234
:
SELECT AVG(pr.rating) AS rating_average -- or ROUND(AVG(pr.rating))
FROM products_ratings pr
INNER JOIN products p
ON pr.productId = p.id
AND p.id = 1234";
И так же просто получить список продуктов вместе с их средним рейтингом:
SELECT
p.id, p.name, p.etc,
AVG(pr.rating) AS rating_average
FROM products p
INNER JOIN products_ratings pr
ON pr.productId = p.id
WHERE p.id > 10 AND p.id < 20 -- or whatever