Пробегать по всей базе раз в период времени или по событию рефреша данных и вытаскивать подходящие условия.
Точнее, по той части базы, которая попадает под тип изменения.
> id пользователя яблоки по 8 рублей
Это значит, что при обновлении _цены_ на _яблоки_ надо вытащить из таблицы все условия, которые затрагивают цену на яблоки.
И обработать сработавшие.
Но если всё действительно так просто, как описано, и типов правил может быть не очень много разных — то можно все условия запихать в запрос прямо.
То есть при обновлении цены на яблоки вытащить все условия, которые затрагивают яблоки, цену, и цена вписывается в текущую.