Я проверил нижеприведенную функцию со следующими значениями в таблице дБ:

Выполнение внутреннего запроса без LIMIT или ROUND () возвращает.
SELECT
FoodName1 = A.FoodName
, Food1Co2 = A.co2
, FoodName2 = B.FoodName
, Food2Co2 = B.co2
, Number = ABS(((A.co2 - B.co2)/(A.co2)))
FROM TB as A
CROSS JOIN TB B

Наконец-то запрос:
SELECT * , ABS(((tt.Food1Co2 - tt.Food2Co2)/(tt.Food1Co2)))
FROM (
Select
FoodName1 = A.FoodName
, Food1Co2 = A.co2
, FoodName2 = B.FoodName
, Food2Co2 = B.co2
, Number = ABS(((A.co2 - B.co2)/(A.co2)))
FROM TB as A
CROSS JOIN TB B
) tt
WHERE ABS(((tt.Food1Co2 - tt.Food2Co2)/(tt.Food1Co2))) >= 0.7
ORDER BY RAND() LIMIT 2
Обратите внимание, как я добавил ABS () в вашу функцию, потому что в вашем запросе будут отображаться отрицательные значения, поэтому вам нужно удалить отрицательные значения и превратить все в положительные, а затем выполнить RAND () LIMIT. Надеюсь, это поможет.