Puesto que usted es después de que el máximo de la campo más largo, comenzaría con algo como lo siguiente. No estoy seguro de si la sintaxis es correcta. Básicamente, debe ignorar todos los valores de columna, excepto los más largos.
select max(letter) from jobs
where len(letter) = (
select max(len(letter)) from jobs
)
Cualquiera que sea la solución que elija, considere la opción de añadir otra columna para mantener la longitud carta y haga que sea controlado por un desencadenador de inserción/actualización (suponiendo MySQL tiene que).
Al indexar esa columna, puede acelerar en gran medida sus consultas ya que elimina las funciones por fila durante select
. El momento adecuado para incurrir en el costo es cuando los datos cambian de modo que el costo del cálculo se amortice en todas las lecturas.
Esto no funcionará en situaciones donde la base de datos se escribe con más frecuencia que la lectura, pero son relativamente raras en mi experiencia.
Eso todavía dará Z para el conjunto de entrada [A..Z, AA]. – paxdiablo
Lo siento, editado después de darme cuenta de que era estúpido por no leer correctamente. – jocull