como selecionar registros mysql pulando sempre um registro
09/01/2014
0
Meus amigos estou precisando de uma força imensa!
estou precisando saber como eu faço para dar um select no mysql para selecionar os registros sempre pulando um registro.
ex:
[img:descricao=result sql]http://arquivo.devmedia.com.br/forum/imagem/335313-20140109-205029.png[/img]
seguindo a imagem acima gostaria de selecionar ( o id=1 pular o id=2 e selecionar o id=3) e assim por diante
alguem poderia me dar uma solução
Ronald Santos
Post mais votado
11/01/2014
Retorna registros com id par
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) = 0
Retorna registros com id ímpar
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) <> 0
Desse modo você consegue pular IDs, veja se atende suas necessidades!!
William
Mais Posts
11/01/2014
Alex Lekao
Excelente a sugestao do Willian!!!
Acredito que a maneira mais pratica de identifcar pares e impares eh com o Resto de divisao!!!
13/01/2014
Paulo Pontes
13/01/2014
Alex Lekao
Mas eu particularmente nao gosto de exclusao de itens de tabelas.
Acho melhor que se tenha um campo onde vc possa flegar sim ou nao para cancelado, apagado, etc...
eu nao recomendo exclusoes de cadastros, por uma questao de consistencia de dados em caso necessario de relatorios, ou outras coisas.
mas isso vai de analise do banco etc.
13/01/2014
William
Retorna registros com id par
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) = 0
Retorna registros com id ímpar
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) <> 0
Desse modo você consegue pular IDs, veja se atende suas necessidades!!
Então colega webcodefree, como mencionei na minha resposta "vou supor que a sua tabela possui os IDs todos em sequência", meu código é apenas uma solução alternativa para o problema.
Trabalho diariamente com MySQLe não acredito que exista outra solução, mas estou acompanhando o tópico, quem sabe surge uma solução "mais adequada" a nível de instrução SQL!
14/01/2014
Paulo Pontes
14/01/2014
William
Afinal estamos todos no mesmo barco .. rsrsrsrsr
14/01/2014
Ronald Santos
Mais eu preciso de mas uma ajuda sua se for possível,
Eu estou precisando fazer um update pegando um valor de uma coluna de uma tabela N para uma coluna de uma tabela X sendo que sendo que o valor que eu irei pegar da tabela N é VARCHAR(255) e eu quero jogar esse valor para a coluna decimal(21,2) da tabela X!
qual a luz que você poderia me dar?
Retorna registros com id par
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) = 0
Retorna registros com id ímpar
SELECT SeusCampos FROM SuaTabela WHERE MOD(id, 2) <> 0
Desse modo você consegue pular IDs, veja se atende suas necessidades!!
14/01/2014
William
14/01/2014
William
14/01/2014
William
Usei 2 instruções de REPLACE() encadeadas para substituição de caracteres, no seu caso '.' por vazio '' e a ',' pelo '.', dessa maneira conseguimos evitar o trucamento de valores quando convertemos valores varchar para decimal. Lembrando que o MySQL usa o '.' como separador decimal!
Outro ponto seria capturar esses valores de outra tabela, nesse caso usei uma subquery para retornar o valor desejado, no código estou comparando os IDs senão a subquery retorna mais do que 1 linha e vai dar erro.
UPDATE TabelaX x SET ColunaX = (SELECT REPLACE(REPLACE(colunaN, '.', ''), ',', '.') FROM TabelaN n WHERE n.idN = x.idX)
Observe o exemplo de entrada e saída do valores abaixo.
ColunaN - ColunaX VARCHAR(255) - DECIMAL(21,2) 1.123,00 - 1123.00 456,09 - 456.09 4,90 - 4.90 12.000,00 - 12000.00 0,90 - 0.90 11345,90 - 11345.90
Qualquer dúvida estou a disposição ...
14/01/2014
Ronald Santos
Usei 2 instruções de REPLACE() encadeadas para substituição de caracteres, no seu caso '.' por vazio '' e a ',' pelo '.', dessa maneira conseguimos evitar o trucamento de valores quando convertemos valores varchar para decimal. Lembrando que o MySQL usa o '.' como separador decimal!
Outro ponto seria capturar esses valores de outra tabela, nesse caso usei uma subquery para retornar o valor desejado, no código estou comparando os IDs senão a subquery retorna mais do que 1 linha e vai dar erro.
UPDATE TabelaX x SET ColunaX = (SELECT REPLACE(REPLACE(colunaN, '.', ''), ',', '.') FROM TabelaN n WHERE n.idN = x.idX)
Observe o exemplo de entrada e saída do valores abaixo.
ColunaN - ColunaX VARCHAR(255) - DECIMAL(21,2) 1.123,00 - 1123.00 456,09 - 456.09 4,90 - 4.90 12.000,00 - 12000.00 0,90 - 0.90 11345,90 - 11345.90
Qualquer dúvida estou a disposição ...
03/02/2014
Ronald Santos
eu testei o comando que vc me passou mais deu erro
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
acima está o erro que o mysql me retornou!!!
Usei 2 instruções de REPLACE() encadeadas para substituição de caracteres, no seu caso '.' por vazio '' e a ',' pelo '.', dessa maneira conseguimos evitar o trucamento de valores quando convertemos valores varchar para decimal. Lembrando que o MySQL usa o '.' como separador decimal!
Outro ponto seria capturar esses valores de outra tabela, nesse caso usei uma subquery para retornar o valor desejado, no código estou comparando os IDs senão a subquery retorna mais do que 1 linha e vai dar erro.
UPDATE TabelaX x SET ColunaX = (SELECT REPLACE(REPLACE(colunaN, '.', ''), ',', '.') FROM TabelaN n WHERE n.idN = x.idX)
Observe o exemplo de entrada e saída do valores abaixo.
ColunaN - ColunaX VARCHAR(255) - DECIMAL(21,2) 1.123,00 - 1123.00 456,09 - 456.09 4,90 - 4.90 12.000,00 - 12000.00 0,90 - 0.90 11345,90 - 11345.90
Qualquer dúvida estou a disposição ...
03/02/2014
William
03/02/2014
Ronald Santos
update reg_c490 x inner join inconsistencia n on x.id = n.id_registro_bd set x.vl_opr = replace(n.valor_esperado_campo, ',', '.') where x.cst_icms = '000';
Clique aqui para fazer login e interagir na Comunidade :)