Создаете отдельный столбец «starrating» в таблице комментариев, переносите туда все оценки. Если иногда поле будет пустовать - нестрашно. (Можно и отдельную таблицу оценок сделать и доставать данные с помощью JOIN. Но хранить json в mysql - это антипаттерн.
Высчитывается рейтинг, как я понял, банальным средним арифметическим всех полученных оценок.
Здесь все написано.
Этот код одноразовый и может быть использован в течение 1 часа. Для получения нового access_token (а каждый раз получать заново его вовсе не требуется) нужно получить новый code.
Сам фильтр не на js, а на сервере конечно. Вообще, для реляционных БД типа mysql в этом случае используется модель хранения данных EAV. Вот здесь например написано про это.
Обычно создают отдельные таблицы: в вашем случае пользователей, заданий и выполненных пользователями заданий. В последней таблице столбцы с id пользователя (индексировать для быстрого select-а) и id выполненного задания. В запросе соединяете все это, используя JOIN. Рекомендуется к прочтению: zlob.in/2013/01/struktura-tablic-dlya-kataloga-tov... (модель структуры хранения EAV); www.anton-pribora.ru/articles/mysql/mysql-join