Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Stellen Sie sicher, dass sich der Bereichswert nicht mit vorhandenen Bereichen überschneidet

Ich würde ein Array mit allen Werten im Bereich [min,max] erstellen und dann einen Schnittpunkt mit allen vorhandenen Bereichen erstellen:

$new_range = range($min, $max);
foreach ($current_ranges as $range) {
  if (count(array_intersect($new_range, range($range["min"], $range["max"])))) {
    throw new RangeException();
  }
}

Dadurch wird eine Ausnahme für den ersten bereits vorhandenen Bereich ausgelöst, der mit dem neuen zusammenfällt.