collapse

* Links de Robótica

* Posts Recentes

Apresentação por Tech_JA
[Hoje às 08:21]


Díodo schottky por Njay
[Hoje às 01:46]


EtherCAT / LAN9252 por beirao
[Hoje às 00:43]


Fonte de Alimentação Simétrica com carregadores por Njay
[Ontem às 21:06]


pasta de soldar por fergas
[20 de Agosto de 2017, 11:47]


duvidas sobre utilização de um osciloscopio(zito) num circuito básico por vasco
[19 de Agosto de 2017, 01:09]


A Paixão da Física Walter Lewin , Warren Goldstein por Njay
[18 de Agosto de 2017, 11:45]


Gerar CPL file a partir dos Gerbers? por Hugu
[18 de Agosto de 2017, 00:22]


Ajuda num relógio para termoacumulador por dennis_boy
[17 de Agosto de 2017, 00:07]


Aspiração para CNC por LVirtual
[14 de Agosto de 2017, 17:34]

Autor Tópico: Dúvida de SQL, PHPMyAdmin  (Lida 1010 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Dúvida de SQL, PHPMyAdmin
« em: 19 de Junho de 2011, 15:57 »
Boas tenho uma tabela com duas colunas, uma de ID, e outra com vários URLs guardados, cada URL tem um ID associado para poder ser chamado através de um número.

Ora, isto é para qualquer um que quiser meter um URL na tabela, por vezes metem URLs que nada têm a ver, ou escrevem coisas parvas, no inicio conseguia editá-los, mas agora há imensos, e preciso de uma coisa mais rápida, o que eu quero é apagar um URL, mas de forma que o seu numero atribuido não deixe de apontar para um URL, exemplo:
_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|4|LOLOLOLO   |
|5|facebook.com|

Quero apagar o LOLOLOLO, mas em vez de ficar assim:

_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|5|facebook.com|

Que fique assim:

_____________
|1|google.com  |
|2|youtube.com|
|3|hi5.com        |
|4|facebook.com|

Talvez ficasse mais simples fazer filtragem do que entra, e não autorizar certas coisas.





Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #1 em: 19 de Junho de 2011, 16:12 »
Boas. Queres fazer isso porquê?

Repara, se associas um ID (neste caso a chave primária) a cada URL e depois apagas um determinado URL e queres re-editar os ID's, então o campo ID não te serve para nada.

Explica-te um pouco melhor porque neste área posso ajudar-te.


Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #2 em: 19 de Junho de 2011, 21:27 »
Sim, não é suposto andares a alterar os IDs dos URLs.

A tua tabela pode perfeitamente ficar com espaços em branco. ;)

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #3 em: 19 de Junho de 2011, 23:24 »
Mas se ficar com espaços brancos quando for buscar um dado que não existe dá erro, a função vai buscar um URL aleatório, posso modificar para caso não existir simplesmente procura outro.

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Dúvida de SQL, PHPMyAdmin
« Responder #4 em: 19 de Junho de 2011, 23:35 »
podes sempre adicionar uma condição a essa função: se o SQL responder com um erro, executa novamente a função até que o retorno seja válido

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #5 em: 19 de Junho de 2011, 23:52 »
Estás a pensar completamente anti-SGBDs (Sistemas Gestores de Base de Dados!) :)

Nao sei que linguagem de programação estás a usar por trás mas podes fazer um SELECT de todos os IDs existentes ou um DISTINCT dos URLs e fazer random disso ou entao quando nao encontra procura outro, conforme disseste.

Quando se tem um campo ID que se pressupoe que seja key e eventualmente index nao é boa politica re-editar esses valores.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #6 em: 20 de Junho de 2011, 12:31 »
Mas se ficar com espaços brancos quando for buscar um dado que não existe dá erro, a função vai buscar um URL aleatório, posso modificar para caso não existir simplesmente procura outro.

Então mas explica lá a lógica disso :)
1º apagas o registo
2º vais à procura dele?

Podes é quando apagares o registo, apagar todas as referências para ele.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #7 em: 20 de Junho de 2011, 13:07 »
Não sou eu que escolho que URL que é chamado, é tudo aleatório.

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Re: Dúvida de SQL, PHPMyAdmin
« Responder #8 em: 20 de Junho de 2011, 14:21 »
Faz assim:

SELECT url FROM nome_da_tabela ORDER BY RAND() LIMIT 1;

O caminho pelo qual estavas a tentar ir, está tecnicamente errado.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: Dúvida de SQL, PHPMyAdmin
« Responder #9 em: 20 de Junho de 2011, 16:28 »
Isso mesmo.

Se tudo for feito com SELECTs não há problema.
Penso que o comando que o SJD22 disse está correcto para o que tu queres. Experimenta.

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.627
  • MAC address? But I have windows...
    • Projects, News, Blog, Tutorials
Re: Dúvida de SQL, PHPMyAdmin
« Responder #10 em: 06 de Julho de 2011, 22:17 »
Boas, pois é... nem cheguei a passar pelas funções todas do SQL e fiz tudo à pata, assim como foi dito acima faz exactamente como quero  :)

Obrigado.