Estoy buscando soluciones MySQL y PostgreSQL para este tipo de problema.Ordenando alfabéticamente registros con "The", "A", "An", etc. al comienzo del campo varchar
Digamos que tengo una serie de registros con un campo title
. Los títulos son títulos de libros o películas, como "El gato en el sombrero" y "Robin Hood". Pero aunque los títulos deben mostrarse en su forma original, deben ordenarse de la forma en que las bibliotecas los clasifican, lo cual es moviendo cualquier artículo, como "The" o "An" al final del título.
Por lo tanto, "The Cat in the Hat" está ordenado como si fuera "Cat in the Hat, The".
¿Cuál es la mejor forma de diseñar el esquema o escribir la consulta para que estos registros estén ordenados por título de la misma manera que las bibliotecas ordenan el título? (También me gustaría saber el término técnico para este tipo de ordenamiento por título.) Además, ¿qué consideraciones de rendimiento debería conocer y qué índices debería crear?
Puede ser una buena idea tener el programa que está utilizando, escribirlo en la base de datos de esta manera. Otra opción sería crear otro "campo de clasificación" que esté ocupado por un desencadenante al ingresar un registro, y el desencadenador eliminaría estas palabras y las colocaría en el extremo para usted. – rayman86
Personalmente, agregaría otra columna donde precalculo el título para ordenar por. Luego actualizaría esta columna, siempre que se modifique el título principal. Sería bastante rápido al ordenar, supongo. –