Feda /dev/

MisKo

#11007

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
2 respuestas
Merkury

#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

3 respuestas
eXtreM3

#11012 y si no puedes alterar la bd y la tabla que quieres ordenar tiene 50 millones de tuplas?

1 respuesta
Merkury

#11013

$arrFeatured = ('english',...); if (in_array($lang, $arrFeatured) { ... }
1 respuesta
eXtreM3

#11014 RIP rendimiento.

HeXaN

Mejor hacemos un triple bucle anidado. Total.

MisKo

#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')
gohrum

Meted los idiomas en el .env y dejad de usar ddbb para tonterias

W0rd

Genbeta dev lleva meses sin actualizar, que blogs/foro estáis siguiendo? , me han pasado por telegram https://www.somosbinarios.es

HeXaN

¿Quién quiere foros teniendo Reddit?

1 respuesta
Soulscx

#11020 hoy foros sobre informatica ahi q valgan la pena ?

2 respuestas
Amazon

#11021 y ayer tampoco

2
nerkaid

#11021 https://www.reddit.com/r/techsupportgore/

HelThunk

#11012 la eficiencia donde la dejas? xD, añadir una columna solo para dar prioridad al ordenar a 5 campos...

1 respuesta
Merkury

#11024 A vale, entonces que es mas eficiente?

1 respuesta
Saphyel

Yo los meteria en html a pelo, eficiente al 100%

1 respuesta
Merkury

#11026 Yo lo pondria claramente en MongoDB con un Redis por encima y delante Akamai cacheando el contenido.

1 respuesta
HelThunk

#11025 hacerlo durante la consulta like #11011

1 respuesta
Saphyel

#11027 no veo lo de mongoDB, pero usar Redis como DB... es eficiencia en estado puro

Merkury

#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.

2 respuestas
PaCoX

lo mejor es usar una columna más, no le deis más vueltas xD.

HelThunk

#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

1 respuesta
Merkury

#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.

1 respuesta
HelThunk

#11033 Aún no he empezado base de datos xD

eXtreM3

Mucha teoría y mucha polla pero hasta que no empiezas a manejar tablas con millones de registros no entiendes una mierda.

1
Lecherito

Pero si a dia de hoy unos milloncitos no es nada xddd

1 respuesta
eXtreM3

#11036 pues imáginate ordenaciones o joins de 1000 registros :\

1 respuesta
Lecherito

#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

1 1 respuesta
eXtreM3

#11038 obvio, el SGDB se lo come instant.

1 respuesta
Lecherito

#11039 Quiza el tuyo no hehe

2
Tema cerrado