Fórum Ubuntu Linux - PT
Suporte Técnico => Programação e Scripts => Tópico iniciado por: zelito em 30 de Novembro de 2010, 23:30
-
Boa noite.
Segue o exemplo:
Na tabela: Clientes
Nome, telefone, email, tp (tipagem sanguinea).
JOSE, 8829-5625, exemplo@ig.com, A
MARIA, 8829-5625, exemplo@ig.com, O
PEDRO, 8829-5625, exemplo@ig.com, AB
se eu ordenasse os dados pela tipagem sanguina (tp) crescente seria:
JOSE, 8829-5625, exemplo@ig.com, A
PEDRO, 8829-5625, exemplo@ig.com, AB
MARIA, 8829-5625, exemplo@ig.com, O
gostaria de ordenar pela tipagem sanguinea, mas não pela ordem crescente ou decrescente e sim, por exemplo, que as pessoas com AB fossem listadas primeiro e depois as com O.
Ou outro exemplo, as pessoas dos estados de SP, depois MA, nos campos UF
É possível fazer isso?
-
Opa,
Bom, para ordenar temos o :
order by
Mas confesso que não entendi o padrão que tu se refere, pode ser mais claro?
Abraços
-
Você teria que criar outra tabela chamado tiposanguineo com campos id e ordem. Ex:
O - 4
AB - 1...
Você faz um "left join" e coloca pra ordenar pelo campo ordem desta nova tabela. Do mesmo jeito com as UFs.
-
Resolvido: segue um exemplo
$query = "SELECT UPPER(nome), date_format(dtnasc,'%d-%m-%Y'), parentesco, foneresid, celular, LCASE(email), obs, YEAR(CURDATE())-YEAR(dtnasc))-(RIGHT(CURDATE(),5)< RIGHT(dtnasc,5)) AS ano, CONCAT('$link1', id, '$link2'), CONCAT('$del1', id, '$del2')
FROM aniversario
ORDER BY obs='Sobrinho', obs='Sobrinha', obs='Irmão', obs='Irmã', obs='Mãe', dtnasc";
ou
ORDER BY sangue='A', sangue='B', sangue='AB', sangue='O' ";