collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[Ontem às 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

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

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

Offline amando96

  • Mini Robot
  • *
  • Mensagens: 1.631
  • 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.631
  • 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.631
  • 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.631
  • 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.