Mysql
 sql >> Base de données >  >> RDS >> Mysql

Assurez-vous que la valeur de la plage ne chevauche pas les plages existantes

Je créerais un tableau avec toutes les valeurs dans la plage [min,max], puis je ferais une intersection avec toutes les plages existantes :

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

Cela lèvera une exception sur la première plage déjà existante coïncidant avec la nouvelle.