select id,idioma from idiomas order by idioma='español' desc, idioma='ingles' desc, idioma asc
select id,idioma from idiomas order by case when idioma in ('español','ingles') then -1 else idioma end
#11011 Dios lo que os complicais la vida.
La clave es meter un campo que se llame <comotesalga del nabo> en la base de datos, hacer SELECT * FROM languages; y usar el puto tag cuando montas el selector y a volar <optgroup> porque imagino que estas haciendo un selector y quieres los idiomas mas "comunes" arriba
#11012 y si no puedes alterar la bd y la tabla que quieres ordenar tiene 50 millones de tuplas?
#11012 Y que es exactamente lo que ves complicada de las 2 queries? Que vamos... son más simples que un botijo
Es más, hay mas opciones propias de MySQL:
select id,idioma from idiomas order by FIELD(idioma, 'español','ingles')
Genbeta dev lleva meses sin actualizar, que blogs/foro estáis siguiendo? , me han pasado por telegram https://www.somosbinarios.es
#11012 la eficiencia donde la dejas? xD, añadir una columna solo para dar prioridad al ordenar a 5 campos...
#11026 Yo lo pondria claramente en MongoDB con un Redis por encima y delante Akamai cacheando el contenido.
#11028 oseas vienes dando lecciones y no sabes que el ORDER BY no acepta igualdades XDDDD
La segunda opcion usando orderby y el case pase, pero vamos, habria que hacer un profile para ver si es mas rapido. La unica pega de verdad a usar la segunda es que si quieres ampiiar los idiomas tienes que cambiar si o si la query desde donde sea que la llames, mientras que tener un campo siempre abre la posibilidad de un CRUD para gente no it.
#11030
Aprovechando los recursos:
SELECT * FROM idiomas
Order by (CASE lengua
WHEN 'Español' THEN 1
WHEN 'Inglés' THEN 2
WHEN 'Alemán' THEN 3
WHEN 'Frances' THEN 4
WHEN 'Italiano' THEN 5
ELSE 100 END) ASC, lengua DESC
Decir que crear una tabla es más eficiente... (pongamos que hay 200 lenguas diferentes, estas creando una columna con 5 items y 195 vacios, solo para ordenar, en caso de tener 7000 mil lenguas 6995 vacios) , ....
Dudo mucho que sea más eficiente
#11032 Sabes lo que es un indice o te ahorro la vergüenza de explicartelo?
Ademas que tener una columna más no afecta al rendimiento, especialmente si la tienes indexada.
Y 6995 nulls es el equivalente a 0kbs en el disco.
Cuando pases de base de datos 1, vienes y nos lo cuentas.
Mucha teoría y mucha polla pero hasta que no empiezas a manejar tablas con millones de registros no entiendes una mierda.
#11037 No hace falta que me lo imagine xDD, te digo que es una nimiedad para lo que maneja la aplicacion en la que trabajo