Página 1 de 1

Comando Delete

NotaPublicado: 2008-09-09 10:32 @480
por Kiloko
Buen día, perleros. Hoy vengo con una nueva pregunta ya que me estoy iniciando en el mundo del SQL, por comandos, pero tengo unas dudas sobre el comando delete. Y es que usualmente utilizo el update o select. Por ejemplo, yo realizo una consulta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config
FROM netmon_owner.routers a
   WHERE a.ip  ='10.250.20.18';
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


de la cual obtengo una respuesta, y quiero eliminar esa respuesta de la bd.
Puesto que no sería práctico hacer un update, set, para cada campo igual a null.

¿Alguien me podría echar la mano o dar un norte de cómo utilizar este comando? Porque la documentación que encuentro me confunde un poco...

SAludos

NotaPublicado: 2008-09-09 14:55 @663
por monoswim
No entiendo la duda exactamente... te muestro un ejemplo...

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
DELETE FROM netmon_owner.routers a WHERE a.ip = '10.250.20.18' LIMIT 1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Te elimina el primer registro que encuentre con esa IP, si le sacas el limit 1 te borra todos... ¡ OJO CON ESO !

Espero que te sirva.

Saludos

NotaPublicado: 2008-09-09 15:38 @693
por Kiloko
:? Es que por ahí va mi duda, y es donde tengo confusión.

Yo tengo mi tabla netmon_owner.routers, y esta tabla tiene los campos
Código: Seleccionar todo
       a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config


Ahora bien, si hago un filtro por a.ip con el IP que puse de ejemplo me aparecen los datos que le corresponden a ese IP. Y mi problema es que tengo 2 IP iguales, la única diferencia es que en el campo de estado uno aparece con 0 y otro con 1, y quiero borrar el que aparece con 0.

Pero esta tabla tiene un buen de registros, por lo que tengo que ser muy cuidadoso, de borrar exactamente lo que quiero.

He de ahí mi problema, que necesito saber bien el uso del delete para borrar tal espacio específico de esa tabla.

:(

NotaPublicado: 2008-09-09 15:49 @700
por explorer
¿La solución de borrar todas las IP con estado igual a 0 resolvería el problema?

¿O hay que añadir la condición de que debe existir, además, una IP igual con estado igual a 1?

NotaPublicado: 2008-09-09 16:44 @739
por Kiloko
:(
Creo que mejor me voy por el update, al realiza mi select.

Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
SELECT a.idrouter, a.ip, a.intext, a.posicion, a.estado, a.nombre,
       a.idcliente, a.memoria, a.host, a.usr, a.pas, a.iploopback,
       a.hexaip, a.hexaiploop, a.tipo, a.idcid, a.nomcli, a.usr_cli,
       a.pas_cli, a.config
  FROM netmon_owner.routers a
  WHERE nombre  ='ID_003_ACT';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me aparecen 2 filas con campos casi iguales.
Y de esas 2 filas quiero modificar algunos campos.

Por ejemplo, si quiero hacer un update uso
Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
UPDATE netmon_owner.routers a SET estado =1 WHERE idrouter =4100;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


actualizó la tabla netmon_owner en el campo estado donde quiero que aparezca un 1 y con la condición donde idrouter = 4100. ¿Sería lo mismo con delete?

NotaPublicado: 2008-09-09 16:50 @743
por explorer
Lo normal es primero hacer un select con condiciones where para ver qué resultados da. Y cuando estamos conformes con ellos, cambiamos por delete y sé que los registros anteriores han quedado borrados (salvo error del motor de la base de datos).

NotaPublicado: 2008-09-09 17:37 @775
por Kiloko
:wink: Creo que por ahí va la cosa. Voy a practicar con una tabla que acabo de crear... Una pregunta más:
¿cómo hago la consulta de tiempo para una hora especifica? Lo que hago es
Sintáxis: [ Descargar ] [ Ocultar ]
Using sql Syntax Highlighting
WHERE A.fecha BETWEEN '5/Sep/2008' AND '6/Sep/2008'
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero necesito hacerla con un time, pero no logro que funcione. Alguien me podría dar un ejemplo...