Consulta Campo?

  • Autor Autor MiguelBot
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
M

MiguelBot

hola necesito hacer una consulta y mostrar los resultados a mi elección


países

id
país


y cuando hago la consulta puedo ordenar por id o por país

SELECT * FROM paises ORDER by id ASC

pero lo que yo quiero hacer es que en los resultados salga primero mexico, de ahí argentina y de ahí los demás países! alguien puede ayudarme?
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Podrías agregar un campo de prioridad por ejemplo y a México le pones 3, Argentina 2 y al resto de paises 1 y lo ordenas por ese campo. Al darlo de alta en la base le pones que el valor predeterminado sea 1.
 
NO HAY OTRA FORMA ? haciendo consulta vi que otra persona consulto lo mismo y lo hizo pero no entiendo! aquí esta lo que le respondieron!
ORDER BY
CASE P1 WHEN 'CTI MÓVIL' THEN 0.1
WHEN 'PERSONAL' THEN 0.2
ELSE ORDEN END

Podrías agregar un campo de prioridad por ejemplo y a México le pones 3, Argentina 2 y al resto de paises 1 y lo ordenas por ese campo. Al darlo de alta en la base le pones que el valor predeterminado sea 1.
 
Prueba con esto:

SELECT IF(pais='Mexico', -2, IF (pais='Argentina', -1, id) as orden, id, pais FROM paises ORDER BY orden ASC;

Suerte.
 
Interesante consulta, estaré al tanto para saber cómo se logra :welcoming:

En cuanto a esto:

Inserir CODE, HTML ou PHP:
ORDER BY 
CASE P1 WHEN 'CTI MÓVIL' THEN 0.1 
WHEN 'PERSONAL' THEN 0.2 
ELSE ORDEN END

Me parece que P1 es la columna a validar, por ejemplo NombrePais, Si el valor de la columna 'P1' es 'CTI MÓVIL' darle prioridad 0.1, EN TU CASO CAMBIALO POR 'México', y así con los otros 0.1, 0.2, 0.3 hasta el 0.999...

Supongo que esto lo que hará es darles el valor ascendente, y como esos valores son menor que 1, los mostrará antes que los demás países.

Es lo que entiendo yo, no sé si sea así, no sé mucho de bases de datos XD

Saludos.

Edito:

Prueba con esto:

SELECT IF(pais='Mexico', -2, IF (pais='Argentina', -1, id) as orden, id, pais FROM paises ORDER BY orden ASC;

Suerte.

Me parece que esto tiene la misma función que el código anterior pero con menos código :encouragement:

Ya me avisan si va. Saludos.
 
Última edição:
Voltar
Topo