Я не могу понять, как проверить на стороне базы данных, перекрываются ли два диапазона, которые могут обрабатывать нулевые значения (например, диапазон A: ноль - нулевой диапазон B: 3 - 10).
Inв этом случае эти два диапазона перекрываются, потому что в моем коде null - null он равен -∞ и + ∞, поэтому 3 - 10 находится внутри -∞ - + ∞.
Проблема в том, что мне нужно построить запросон возвращает все записи из моей таблицы stock_rule, диапазон которых перекрывается с записью stock_rule, которую я пытаюсь создать.
Если число больше нуля, я не могу сохранить запись.
Я пытаюсь добиться этого с помощью функции COALESCE (MySQL 8.0) следующим образом:
COALESCE(rule.min_price, 0)<=COALESCE(:minPrice, rule.min_price,0) AND
COALESCE(rule.max_price, 0)<=COALESCE(:minPrice, rule.max_price, 0) AND
COALESCE(rule.min_price, 0)<=COALESCE(:maxPrice, rule.min_price,0) AND
COALESCE(rule.max_price, 0)<=COALESCE(:maxPrice, rule.max_price, 0) AND
COALESCE(:minPrice, 0)>=COALESCE(rule.min_price, :minPrice, 0) AND
COALESCE(:maxPrice,0)<=COALESCE(rule.min_price, :maxPrice, 0) AND
COALESCE(:minPrice,0)>=COALESCE(rule.max_price, :minPrice, 0) AND
COALESCE(:maxPrice, 0)<=COALESCE(rule.max_price, :maxPrice, 0)