Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Certifique-se de que o valor do intervalo não se sobreponha aos intervalos existentes


Eu criaria uma matriz com todos os valores no intervalo [min,max] e faria uma interseção com todos os intervalos existentes:
$new_range = range($min, $max);
foreach ($current_ranges as $range) {
  if (count(array_intersect($new_range, range($range["min"], $range["max"])))) {
    throw new RangeException();
  }
}

Isso lançará uma exceção no primeiro intervalo já existente coincidindo com o novo.