Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Aprendiz/CE

Manter ordem de inserção em um seleção

Recommended Posts

Prezados,

 

Tenho como manter a mesma ordem na qual os registros foram inseridos em consulta com select? Tenho uma tabela aonde os dados são gravados já na ordem de serem recuperados/consultados (isso por motivos especificos/tecnicos). Até ai tudo bem, pois estava funcionando dessa forma a muito tempo e nunca deu errado. O problema é que agora tenho que filtrar (where) alguns registros por uma determinada coluna da respectiva tabela e acaba ficando tudo fora de ordem. Não tenho como dar um "order by", pois a referida tabela não possui a coluna que daria o ordenamento que necessito. Penso que se eu conseguir ordenar pelo número de registro (ponteiro) a coisa voltaria a funcionar corretamente.

 

 

Grato e aguardo qualque orientação.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente algo assim ...




Select *
From (select *
      From tabela) v
Where campo = 123

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Tente algo assim ...

 

 

Select *
From (select *
      From tabela) v
Where campo = 123

Olá Motta,

 

Mil desculpa, mas te confesso que não entendi esse instrução.

 

Será que o colega poderia exemplificar melhor?

 

Grato e conto com a sua atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Mysql irá aplicar o filtro em cima de uma "tabela virtual" o fruto do select.

 

Dada a condição estranha passada achei que poderia funcionar.

 

O problema básico aqui é que uma tabela não tem ordem o que determina a ordem é o select.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie o campo de ID com autoincrement, então.

Passos:

1 - Crie o campo de ID sem ser autoincrement, com valores nulos

2 - Exporte a tabela (inclusive estrutura)

3 - Altere manualmente a estrutura, colocando o ID como chave primária auto increment

4 - Importe a tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Houve deleções e inserções nesta tabela ?

 

Olá Motta,

 

A referida tabela recebe um volume de dados já ordenados previamente, daí os mesmo ficam arquivados sem sofrerem nenhum tipo de intervenção (insert, update, delete). O que ocorre é que todos os registro recebem um identificador para aquele "lote" de registros. É esse "lote" que estou utilizando para filtrar (where). O que pode ocorrer é existir diversos "lotes" diferentes, só isso, mas penso que essa variedade de lotes não tenha nada a ver, pois cada "lote" é gravador de uma única vez, sendo assim matem-se o ordenamento original.

 

Grato pela sua atenção e aguardo o seu comentário.

Crie o campo de ID com autoincrement, então.

Passos:

1 - Crie o campo de ID sem ser autoincrement, com valores nulos

2 - Exporte a tabela (inclusive estrutura)

3 - Altere manualmente a estrutura, colocando o ID como chave primária auto increment

4 - Importe a tabela.

 

 

Olá Massaki,

 

Eu já havia pensado em fazer algo assim como você mencionou, mas achei que não seria a forma mais correta de fazer isso (tecnicamente falando). É por isso que queria recuperar o próprio ID do registro, daí penso que daria certo.

 

Grato pela sua atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique a estrutura da tabela e quantos registros ela tem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique a estrutura da tabela e quantos registros ela tem.

 

Olá Motta,

 

Vamos deixar isso pra lá.

 

A tabela não tem nada demais não. A mesma é utilizada para receber registros de terceiros. Uma empresa me force os dados no padrão deles via RESTFul JSON e eu jogo dentro dela para puder fazer o que é necessário.

 

O pessoal de TI dessa empresa são muito fechados e não aceitam nenhum tipo de solicitação, mas consegui falar com o "cacique da tribo" (rs) e pedi para que eles incluam uma coluna com os dados para o devido ordenamento. Acho que vai sair! Vou aguarda e vê no que dá.

 

Muitíssimo obrigado a você e a todos que tentaram me ajudar.

 

Até a próxima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.