Para lo primero, es decir que ingrese ciertos datos, se me ocurre agregar ENUM como por ejemplo:
En este caso, 'ciudad' solo admitirá valores que sean 'Cuenca', 'Quito' o 'Guayaquil', si intenta con otros valores devuelve error. Aquí entonces suplanta los valores para tu caso.
Si es que hay alguna forma de hacerlo con rangos o intervalos sería más útil y lógico, pero no lo he visto
Lo segundo tiene razón tanto 'guesos52' como 'gnzsoloyo', es mejor que ese proceso lo realices calculando desde un lenguaje que no sea MySQL, por ejemplo desde C# luego de recuperar los registros que requieras, ya que puedes ocupar más recursos del servidor (MySQL), por lo que será mucho más recomendable que lo hagas desde el cliente.