Tips

TIP: Order by Mysql personalizado

Inauguramos este nuevo apartado de Tips con un artículo muy básico pero que puede mejorar mucho la calidad de los proyectos.

La idea de estos artículos es poder encontrar ayudas y mejoras sencillas, que saquen provecho a la potencia del código, pero que, sin embargo, pasan desapercibidas por muchos programadores y aficionados.

En este caso vamos a hacer un ORDER BY personalizado de MYSQL.

Todos tendemos a ordenar por identificadores o claves de distintos campos, pero muchas veces el identificador, o el orden que genera, no es nada útil para el usuario final. Un caso típico es cuando traducimos los "estados" de algo, el orden en el que se van insertando en las tablas, no tiene que ser necesariamente el orden natural de trabajo con ese estado. El orden alfabético o de su identificador tampoco tienen que ser relevante...

Hay dos posibilidades, cada una será recomendable en función de la tipología del proyecto y del cliente.

  1. Añadir un campo "orden"  (recomendamos no usar order ya que es una palabra reservada, aunque nos lo permitiría el sistema nos podría dar errores en el futuro) a cada una de las tablas que enumeren items que sean usados como características de alto. Esto no aumentará el tamaño de la base de datos, y no tiene que molestar a la hora de introducir información. Pero es posible que nunca se llegue a usar, y únicamente nos permitirá un orden establecido, que además deberá ser introducido como metadato cuando se cree la tabla
  2. Usar la sentencia ORDER BY FIELD(). En este caso podremos indicar cual será el orden que queremos que tenga el contenido de la columna, que debería ser controlado y conocido. Tiene el inconveniente (similar al anterior) de que tendremos que marcar el orden en código, de manera que si incluimos nuevos estados y no actualizamos el código, se ordenarán como indiquen por defecto, pero no siguiendo el criterio que solicitemos (en el otro caso un nuevo estado insertado requiere sin falta que se le inserte su orden). La ventaja es que podremos marcar distintos órdenes para distintas zonas del código, marcando el orden necesario en cada uno de las búsquedas.
    La sintaxis es ORDER BY FIELD (<nombrecolumna>, valor1, valor2, ...., valorn)

La principal ventaja es que podemos combinar ambos métodos, indicando siempre un orden por defecto para nuestros campos de enumeración, y además, cuando nos lo queramos saltar, podremos utilizar la función FIELD.

Esperamos que sea útil y que vayáis poco a poco mejorando vuestra programación y sacándole todo el potencial a las herramientas de las que disponéis. A PROGRAMAR!!!

Lo que necesitas:

logo transp

Sobre Ilke Benson

Dónde estamos     

C/ Donoso Cortés, 6 - 3º. Oficina 10
06002 Badajoz (Extremadura)

     
Teléfono  

telf: +34 924 98 34 19

fax: +34 924 98 34 19

Email  

  

info@ilkebenson.com

  

Pídenos

Es importante estar conectado con nuestros clientes, según nuestras metodologías de desarrollo, ellos se hacen parte indispensable en el ciclo de vida del proyecto.

Es por este motivo por el cual disponemos de un sistema que permite a nuestros clientes informar de incidencia o solicitar modificaciones de manera priorizada (peticiones de tareas).

Sistema de Gestión de Peticiones de Ilke Benson

Ilke Benson  ©2024 Ilke Benson. All Rights Reserved. Aviso Legal. Diseñado por Ilke Benson

¿Quieres algo concreto?